Enterキーを押すとActionListenerクラスのActionEventメソッドが呼ばれます。
キーイベントは、KeyListenerクラスのkeyPressedメソッド、keyReleasedメソッド、keyTypedメソッドが呼ばれます。
テキストの値が変更されるとTextListenerクラスのtextValueChangedメソッドが呼ばれます。
package MyPackage1; import java.awt.*; import java.awt.event.*; public class TextFieldSample { /* * エントリーポイント */ public static void main(String args[]){ new TextFieldSample(); } TextField txt1; Label lbl1; Label lbl2; Label lbl3; Panel p1; /* * コンストラクタ */ public TextFieldSample(){ //Frameを作成します。 Frame frm = new Frame("TextFieldSample"); frm.setSize(300,300); frm.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); //TextFieldを作成しイベントリスナーを追加します。 txt1 = new TextField(); txt1.addActionListener(new txt1ActionAdapter()); txt1.addKeyListener(new txt1KeyAdapter()); txt1.addTextListener(new txt1TextAdapter()); //ラベルを作成します。 lbl1 = new Label(); lbl2 = new Label(); lbl3 = new Label(); //パネルを作成し、コンポーネントを追加します。 p1 = new Panel(); p1.setLayout(new GridLayout(3,1)); p1.add(lbl1); p1.add(lbl2); p1.add(lbl3); //コンポーネントを追加します。 frm.add(txt1,BorderLayout.NORTH); frm.add(p1,BorderLayout.CENTER); //Frameを表示します。 frm.setVisible(true); } /* * txt1のActionListener */ private class txt1ActionAdapter implements ActionListener{ public void actionPerformed(ActionEvent ev) { //Enterキーが押された時に呼ばれます。 lbl2.setText("actionPerformed:" + txt1.getText()); } } /* * txt1のKeyListener */ private class txt1KeyAdapter implements KeyListener{ @Override public void keyPressed(KeyEvent ev) { //キーが押された時に呼ばれます。 lbl1.setText("keyPressed:" + String.valueOf(ev.getKeyChar())); } @Override public void keyReleased(KeyEvent ev) { //キーが離された時に呼ばれます。 } @Override public void keyTyped(KeyEvent ev) { //キーがタイプされた時に呼ばれます。 } } /* * txt1のTextListener */ private class txt1TextAdapter implements TextListener{ @Override public void textValueChanged(TextEvent arg0) { //テキストの値が変更した時に呼ばれます。 lbl3.setText("ValueChanged:"+ txt1.getText()); } } }
0 件のコメント:
コメントを投稿