第9回 Swing
準備 フォルダ名 Swing コピー元 ~professor/Java/Swing2/* コマンドプロンプト ネットワークの時と同様にコマンドプロンプト から実行できるようにしておいてください。
Swingについて SwingとはJavaでGUIアプリケーションを作成するためのパッケージ。Swingを使用することによって、実行環境によらない統一されたGUIを作成できる。 アプレットより動作が軽いのが特徴
Pacman.java 5 public class Pacman extends JPanel PacmanクラスにJpanelを継承 7 public void paintComponent(Graphics g) グラフィックの描画を行うメソッド アプレットのpaintメソッドと同じ働き 12 JFrame f = new JFrame(); Jframeの生成
続き 13 f.getContentPane().add(new Pacman()); JFrameにContentPaneを取得させその上にJpanelを載せている。 19 f.setSize(300,300); Jframeのサイズ指定 20 f.show(); Jframeの表示
さらに続き 14-18 行目 ウィンドウが閉じられたときのイベント System.exit(0); でプログラムを終了
Pacman2.java 16 JButton b = new JButton("Red"); Redというラベルでボタンbの生成 (アプレットとは名前が少し違うことに注意) 17 c.add(b, BorderLayout.NORTH); ぺインの上側にボタンをのせる。 位置を指定しないとJpanelの上にかぶさる。
演習 Pacman3.javaを参考に,ボタンを押す度に赤と緑を 交互に変えるPacmanRG.javaを作成せよ.
Icon1 .java 7 Icon img = new ImageIcon("C-01.gif"); 8 JLabel lab = new JLabel(img); imgを乗せたlabというラベルを生成 (本来は文字列を入れるもの) 9 add(lab); Jpanelにlabを乗せる
Text1.java 6 JTextField t; テキストフィールドtを定義 9 t = new JTextField("Write Here", 20); Write Hereと書かれた20文字分のテキストフィールドtを生成 16 lab.setText(t.getText().toUpperCase()); t.getText()でテキストフィールドtの中身を取得し大文字にしlab.setTextでラベルに貼り付ける
演習 シグモイド関数 f(x) = 1/(1 + e-x) を計算する Text3.javaを描け.
Works.java c.setLayout(new FlowLayout()); setLayoutでペイン上のレイアウトを設定する。 FlowLayoutはレイアウトをJFrameの大きさに合わせて自動的に行う
演習 セ氏カ氏変換プログラムFahrenheit.javaの Swing版 FahrenheitSwing.javaを書け.
宿題 宿題10.1、10.3 オリジナル問題 ○×クイズを行うプログラムMarubatsu.javaをSwingで作成せよ。 (問題数は3問以上にしてください。)