演習2-2 イベント処理
をテンプレートにして作成
開始行:
[[TopPage]] > [[演習課題]] > 演習2-2 イベント処理
* イベント処理 [#n1693285]
まず,下記のプログラムをダウンロードしてください.
&ref(GuiEventTest.java,,,GuiEventTest.java ダウンロード);...
*** 説明 [#r4b21dee]
このプログラムは,演習2-1のプログラムにイベント処理の機能...
(名前入力機能など一部を省略しています)
''イベント''とは,Javaプログラム上でマウスやキーボードを...
- 26〜27行目:各ボタンに対して,マウスイベントのリスナー...
- 28行目:各ボタンに対して,ボタンの番号を格納している.
*** イベントハンドラ [#g8dddc72]
- 8行目の下記の部分により,いくつかのイベントハンドラを追...
implements MouseListener,MouseMotionListener
-- 「''インタフェース''を実装している」というのですが,詳...
-例えば38〜44行目の,''mouseClicked''メソッドは,コンポー...
-- 40行目は,クリックされたコンポーネントを取得しています.
-- 41行目は,クリックされたコンポーネントから,ボタン番号...
-- 42行目は,ボタン番号の前に*(アスタリスク)をつけて,ク...
|MouseListener|mouseClicked(MouseEvent e)|マウスで&color(...
|~|mouseEntered(MouseEvent e)|マウスがオブジェクトに&colo...
|~|mouseExited(MouseEvent e)|マウスがオブジェクトから&col...
|~|mousePressed(MouseEvent e)|マウスでオブジェクトを&colo...
|~|mouseReleased(MouseEvent e)|マウスで押していたオブジェ...
|MouseMotionListener|mouseDragged(MouseEvent e)|マウスで...
|~|mouseMoved(MouseEvent e)|マウスがオブジェクト上で&colo...
#br
|&color(red,yellow){&size(16){''よくあるミスに注意!''};};|
|インタフェースの実装により追加されたイベントハンドラは,...
|&color(red,yellow){&size(16){''よく間違えるので,もう一...
|mouseClicked(), mouseEntered(),mouseExited(), mousePres...
|implementsした MouseListener,MouseMotionListenerが,それ...
-
*** 確認 [#v1e6355b]
- 各マウスイベントの違いと発生タイミングについて確認しま...
-- 例えば,mouseClickedとmousePressedの違いに注意!
- 37行目から81行目を''コメントアウト''(&color(red){/* と...
-- エラーが出ますね.つまり,%%%省略はできません%%%.これ...
※最終課題に向けて…
余分な処理(例:「マウスが入った」などの表示)を止めたい...
/*
public void mouseEntered(MouseEvent e) {
System.out.println("マウスが入った");
}
*/
ではなく
public void mouseEntered(MouseEvent e) {
//System.out.println("マウスが入った");
}
としてみてください.
-- &size(15){''関数全体を消すではなく,&color(red){その中...
*** 練習 [#h7c4ef3b]
アスタリスクマーク(*)のついたボタンを再度クリックすると...
&color(,yellow){ヒント1};:
- '''JButton'''オブジェクトで使用できる''getText()''を使...
-- 例)) 「JButton型の''theButton''」に書いてある文字列が...
- 「*マークがあるかどうか」でボタンのテキストを上書きした...
-- この判定には,いくつか方法があります.
-- ボタンの配列番号や,ボタンのテキストを用いて,よく考え...
&color(,yellow){ヒント2};:
- ボタンのテキストを取得して,"*"かどうかを比較しましょう...
- 文字列の比較は、「==」「!=」は使えません。
- 文字列の一文字目を取る関数を利用すると良いです.
- [[演習1-4>演習1-4 文字列(String)型]]を見ましょう!
&color(,yellow){ヒント3};:
- "*"を付ける="*"を付けた文字をsetTextでセットすることで...
- "*"を外す="*"の無い文字をsetTextでセットすることです.
&color(,yellow){どのボタンをクリックしたか区別はどうして...
- どのボタンをクリックしたかは,どうやって調べているので...
- ちょっとしたトリック?を使って,実現しています.
- 「ボタンを生成」するときに,下記の命令で,ボタンに配列...
-- buttonArray[i].setActionCommand(Integer.toString(i));/...
- クリックされたボタンでは,下記のプログラムで,その情報...
-- String theArrayIndex = theButton.getActionCommand();//...
- このような仕組みで,どのボタンをクリックしたかを調べる...
- setActionCommand()とgetActionCommand()は,文字のデータ...
- このプログラムでは,Integer.toString(i)関数で,配列の数...
- 配列の番号として利用するときには,数字にする必要があり...
&color(,yellow){マウスイベントはどこからくるのか?};:
- 「mouseClicked」「mouseEntered」は,関数(メソッド)で...
- 実は,プログラムの上部にある,implements MouseListener,...
プログラムの中にはみえないようになっています.なので,ち...
- MouseListener,MouseMotionListenerのプログラムの指示とし...
マウスイベント受け取るかについて,「add」をして,決定して...
- 「.addMouseListener(this)」を呼んで,設定しています.
#br
&size(16){[[&ref(http://yoslab.net/netprog/next.gif,nolin...
終了行:
[[TopPage]] > [[演習課題]] > 演習2-2 イベント処理
* イベント処理 [#n1693285]
まず,下記のプログラムをダウンロードしてください.
&ref(GuiEventTest.java,,,GuiEventTest.java ダウンロード);...
*** 説明 [#r4b21dee]
このプログラムは,演習2-1のプログラムにイベント処理の機能...
(名前入力機能など一部を省略しています)
''イベント''とは,Javaプログラム上でマウスやキーボードを...
- 26〜27行目:各ボタンに対して,マウスイベントのリスナー...
- 28行目:各ボタンに対して,ボタンの番号を格納している.
*** イベントハンドラ [#g8dddc72]
- 8行目の下記の部分により,いくつかのイベントハンドラを追...
implements MouseListener,MouseMotionListener
-- 「''インタフェース''を実装している」というのですが,詳...
-例えば38〜44行目の,''mouseClicked''メソッドは,コンポー...
-- 40行目は,クリックされたコンポーネントを取得しています.
-- 41行目は,クリックされたコンポーネントから,ボタン番号...
-- 42行目は,ボタン番号の前に*(アスタリスク)をつけて,ク...
|MouseListener|mouseClicked(MouseEvent e)|マウスで&color(...
|~|mouseEntered(MouseEvent e)|マウスがオブジェクトに&colo...
|~|mouseExited(MouseEvent e)|マウスがオブジェクトから&col...
|~|mousePressed(MouseEvent e)|マウスでオブジェクトを&colo...
|~|mouseReleased(MouseEvent e)|マウスで押していたオブジェ...
|MouseMotionListener|mouseDragged(MouseEvent e)|マウスで...
|~|mouseMoved(MouseEvent e)|マウスがオブジェクト上で&colo...
#br
|&color(red,yellow){&size(16){''よくあるミスに注意!''};};|
|インタフェースの実装により追加されたイベントハンドラは,...
|&color(red,yellow){&size(16){''よく間違えるので,もう一...
|mouseClicked(), mouseEntered(),mouseExited(), mousePres...
|implementsした MouseListener,MouseMotionListenerが,それ...
-
*** 確認 [#v1e6355b]
- 各マウスイベントの違いと発生タイミングについて確認しま...
-- 例えば,mouseClickedとmousePressedの違いに注意!
- 37行目から81行目を''コメントアウト''(&color(red){/* と...
-- エラーが出ますね.つまり,%%%省略はできません%%%.これ...
※最終課題に向けて…
余分な処理(例:「マウスが入った」などの表示)を止めたい...
/*
public void mouseEntered(MouseEvent e) {
System.out.println("マウスが入った");
}
*/
ではなく
public void mouseEntered(MouseEvent e) {
//System.out.println("マウスが入った");
}
としてみてください.
-- &size(15){''関数全体を消すではなく,&color(red){その中...
*** 練習 [#h7c4ef3b]
アスタリスクマーク(*)のついたボタンを再度クリックすると...
&color(,yellow){ヒント1};:
- '''JButton'''オブジェクトで使用できる''getText()''を使...
-- 例)) 「JButton型の''theButton''」に書いてある文字列が...
- 「*マークがあるかどうか」でボタンのテキストを上書きした...
-- この判定には,いくつか方法があります.
-- ボタンの配列番号や,ボタンのテキストを用いて,よく考え...
&color(,yellow){ヒント2};:
- ボタンのテキストを取得して,"*"かどうかを比較しましょう...
- 文字列の比較は、「==」「!=」は使えません。
- 文字列の一文字目を取る関数を利用すると良いです.
- [[演習1-4>演習1-4 文字列(String)型]]を見ましょう!
&color(,yellow){ヒント3};:
- "*"を付ける="*"を付けた文字をsetTextでセットすることで...
- "*"を外す="*"の無い文字をsetTextでセットすることです.
&color(,yellow){どのボタンをクリックしたか区別はどうして...
- どのボタンをクリックしたかは,どうやって調べているので...
- ちょっとしたトリック?を使って,実現しています.
- 「ボタンを生成」するときに,下記の命令で,ボタンに配列...
-- buttonArray[i].setActionCommand(Integer.toString(i));/...
- クリックされたボタンでは,下記のプログラムで,その情報...
-- String theArrayIndex = theButton.getActionCommand();//...
- このような仕組みで,どのボタンをクリックしたかを調べる...
- setActionCommand()とgetActionCommand()は,文字のデータ...
- このプログラムでは,Integer.toString(i)関数で,配列の数...
- 配列の番号として利用するときには,数字にする必要があり...
&color(,yellow){マウスイベントはどこからくるのか?};:
- 「mouseClicked」「mouseEntered」は,関数(メソッド)で...
- 実は,プログラムの上部にある,implements MouseListener,...
プログラムの中にはみえないようになっています.なので,ち...
- MouseListener,MouseMotionListenerのプログラムの指示とし...
マウスイベント受け取るかについて,「add」をして,決定して...
- 「.addMouseListener(this)」を呼んで,設定しています.
#br
&size(16){[[&ref(http://yoslab.net/netprog/next.gif,nolin...
ページ名: