Top / Graphics / 2015 / ex10

グラフィックス基礎・演習 2015年度 第10回 [edit]

注意 [edit]

プログラムの作成場所 [edit]

今回以降は,演習課題のプログラムを次のように整理しよう.

  • ディレクトリ ~/Graphics2015/turtle にはかめさん関係のソースファイル,クラスファイルなど
  • ディレクトリ ~/Graphics2015/g にはGUIやグラフィックス関係のソースファイル,クラスファイルなど(今回以降はほとんどこちら)
  • ディレクトリ ~/Graphics2015 には上記のどちらでもないファイルをおく

ディレクトリの作り方などを忘れた人は Docs/4UNIXBeginners へどうぞ.

アイコン用画像 [edit]

今日の演習では,アイコン用にいくつか画像を用いる. 以下のものをクラスファイルと同じ場所に保存しておくこと.

それぞれどんな画像かは,ImageMagickのdisplayコマンドを用いて確認できる.

$ display pochittona.png &

実行例の見た目について [edit]

この科目のページに示されたプログラムの実行例は,Mac OS X 上でのデフォルトの Look&Feel にそった見た目になっている. 実行環境が異なれば見た目も異なる場合があるので注意. それから,ウィンドウをキャプチャした画像をはり付けてあるだけなので,ボタンを押しても反応してくれません (^^)

課題A(self) 完成目標: 課題Bにとりかかる前 [edit]

教科書p.118を参考に,Helloクラスを元にして,下のような見た目の得られるクラスを作りなさい(G10exA).「「ねこボタン」ってなんやねん」の部分は,「ラベル」である.

G10exA.png

check

  • ちゃんと上の注意を読んで正しいディレクトリ内でソースを作成しましたか?
  • 空白部分に何が入るか考えなさい(白字で答えが書いてある)
  1. G10exAクラスのスーパークラスは  JPanel  クラスである(スーパークラスのスーパークラスもスーパークラスなので正解は複数ありますが,白字の答えは「最も近い親」です)
  2. G10exAクラスでは  3  つのインスタンス変数が宣言されている.そのうち2つは  JButton  クラスのオブジェクトを指すためのものである.
  3. G10exAクラスでは  0  個のインスタンスメソッド, 1  個のクラスメソッドが定義されている.クラスメソッドは  main  という名前である.
  4. G10exAクラスのコンストラクタ内で呼び出しているsetLayoutメソッドやaddメソッドは,このクラスのインスタンスメソッドである.より丁寧に書くなら,これらのメソッド名の前にいずれも「  this . 」をつけることができる. G10exAクラスでこれらが使えるのは,G10exAクラスが  JPanel  クラスのサブクラスであり, JPanel  クラスが Container クラスのサブクラスであるため,つまり,G10exAクラスが Container クラスのサブクラスであるため,これらのメソッドを Container クラスから  継承  しているからである.

課題B(TA) 締切: 今回の演習開始75分後 [edit]

  1. 課題AのG10exAをもとにして,ラベルとボタンが横一列にならんだものを作りなさい.FlowLayout を用いること(G10exBFlow).
  2. 同様に,ラベルとボタンが2行2列にならぶようにしなさい(コンポーネントは3つしかないので,1カ所は空白のまま).GridLayoutを用いること(G10exBGrid).

課題C(self) 完成目標: 次回演習開始直後 [edit]

教科書p.128のリスト11.4のプログラムとp.129のリスト11.5のプログラムを参考にして,次のような表示をするプログラムを作成しなさい(G10exC). 次のことに注意.

  • 上側にはチェックボックスが2つある.右側のチェックボックスには「ねこチェックボックス」という表示があり,猫の画像をアイコンに使用している. リスト11.4を参考に,このチェックボックスの非選択時の画像には blackuni.jpg を,選択時の画像には whiteuni.jpg を用いることにしよう.
  • JComboBox は,Java 7 になる時に仕様が変更になっている.Java 6 までと Java 7 以降では書き方が異なるので注意(cf. 教科書 p.129).
  • コンボボックスのメニュー項目は自分で適当なものを考えればよい.
  • この図のようにコンポーネントを配置するには,BorderLayoutを用いたらよい.

G10exC.png

課題S(おまけ) [edit]

次のことをやりなさい.

  1. 講義資料のQ2(ヒント:JRadioButtonはSwingのパッケージに含まれている)
  2. G10exCの左側のチェックボックスをラジオボタンに変更したプログラムを作成しなさい(G10exS)
  3. 以下のプログラムを作成し,その動作を確認しなさい(FileChooser)
    • 2つのウィンドウが重なって表示されるかもしれない.ウィンドウを移動させてみるとよいかも.
    • Java APIの中からJFileChooserクラスの説明を探して読もう.
  4. FileChooser を改造して,画像ファイルを選択したらその画像を表示する(最初に表示されていた画像を置き換える)ものにしなさい
    • 選択したファイルが画像でない場合のことは考えなくて構いません
    • ヒント1: 15行目,35,36行目を書くだけでいけます
    • ヒント2: JLabelクラスのインスタンスメソッド setIcon() を使おう

FileChooser.png


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-06-23 (火) 08:59:13 (881d)