TopPage > 演習課題 > 演習2-3 画像アイコン 画像アイコン †まず,下記のプログラムと画像3枚を同じフォルダにダウンロードしてください. GuiImageTest.java ダウンロード/ソースコードファイルを見る 画像ファイルの保存は,画像ファイル上で右クリックし「名前をつけて画像を保存」をクリックします. ... White.jpg ... Black.jpg ... GreenFrame.jpg コンパイルの方法は,これまでと同じです. 説明 †このプログラムは,演習2-2のプログラムのボタンに,上記でダウンロードした画像ファイルを貼り付けたものです. (一部機能を省略しています) このプログラムは,クリックするごとに, 21〜24行目で,3つの画像ファイルを,ImageIcon型の変数(オブジェクト)に読み込んでいます. //アイコンの設定 whiteIcon = new ImageIcon("White.jpg"); blackIcon = new ImageIcon("Black.jpg"); boardIcon = new ImageIcon("GreenFrame.jpg"); 26〜35行目では,ボタンを5つ生成します. //ボタンの生成 buttonArray = new JButton[5];//ボタンの配列を5個作成する[0]から[4]まで使える for(int i=0;i<5;i++){ buttonArray[i] = new JButton(boardIcon);//ボタンにアイコンを設定する c.add(buttonArray[i]);//ペインに貼り付ける buttonArray[i].setBounds(i*45,10,45,45);//ボタンの大きさと位置を設定する.(x座標,y座標,xの幅,yの幅) buttonArray[i].addMouseListener(this);//ボタンをマウスでさわったときに反応するようにする buttonArray[i].addMouseMotionListener(this);//ボタンをマウスで動かそうとしたときに反応するようにする buttonArray[i].setActionCommand(Integer.toString(i));//ボタンに配列の情報を付加する(ネットワークを介してオブジェクトを識別するため) }
続いて,クリックしたときの処理が44〜58行目に書かれています. 一部を抜粋します. JButton theButton = (JButton)e.getComponent();//クリックしたオブジェクトを得る. String theArrayIndex = theButton.getActionCommand();//ボタンの配列の番号を取り出す Icon theIcon = theButton.getIcon();//theIconには,現在のボタンに設定されたアイコンが入る System.out.println(theIcon);//デバッグ(確認用)に,クリックしたアイコンの名前を出力する if(theIcon.equals(boardIcon)){//アイコンがboardIconと同じなら theButton.setIcon(whiteIcon);//whiteIconに設定する }else{ theButton.setIcon(blackIcon);//blackIconに設定する }
練習 †黒丸つきアイコンの状態になっているボタンをクリックすると,緑のアイコンが表示されるようにプログラムを修正してください. ボタン以外の画像の作成 †Q&Aを参考にしてください. |