JButtonでキー入力(Returnキーなど)を捕捉する -- KeyAdapterの使い方
戻る
::::::::::::::
KeyListenerTest.java
::::::::::::::
import java.awt.*;
import java.awt.event.*;
public class KeyListenerTest extends Frame implements KeyListener {
KeyListenerTest() {
super( "KeyListenerTest" );
TextField tf1 = new TextField();
tf1.addKeyListener( this );
this.add( tf1 );
setSize( 200, 100 );
show();
}
public void keyPressed( KeyEvent e ) {
System.out.println( "Press: " + e.getKeyText( e.getKeyCode() ) );
}
public void keyReleased( KeyEvent e ) {
System.out.println( "Release: " + e.getKeyText( e.getKeyCode() ) );
}
public void keyTyped( KeyEvent e ) {
System.out.println( "Type: " + e.getKeyChar() );
}
public static void main( String [] args ) {
new KeyListenerTest();
}
}
::::::::::::::
LoginForm.java
::::::::::::::
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
/**
* $Id: LoginForm.html,v 1.1 2009/06/22 16:11:50 kishi Exp kishi $
*/
public class LoginForm extends JFrame implements ActionListener {
private JTextField loginName;
private JPasswordField passwd;
private JButton submit;
private JButton reset;
public LoginForm() {
super( "■ログイン画面" );
setBounds( 128, 256, 480, 600 );
JPanel panel = new JPanel();
panel.setPreferredSize( new Dimension( 300, 60 ) );
panel.setLayout( new GridLayout( 3, 4 ) );
// 1行目
panel.add( new JLabel() );
JLabel label1 = new JLabel( "Login Name", JLabel.RIGHT );
panel.add( label1 );
loginName = new JTextField( 10 );
panel.add( loginName );
panel.add( new JLabel() );
// 2行目
panel.add( new JLabel() );
JLabel label2 = new JLabel( "Password", JLabel.RIGHT );
panel.add( label2 );
passwd = new JPasswordField( 10 );
panel.add( passwd );
panel.add( new JLabel() );
// 3行目
panel.add( new JLabel() );
submit = new JButton( "送信" );
submit.addActionListener( this );
submit.setActionCommand( "SUBMIT" );
panel.add( submit );
submit.addKeyListener( new KeyAdapter() {
public void keyReleased( KeyEvent e ) {
Object keyText = e.getKeyText( e.getKeyCode() );
System.out.println( "Release: " + keyText );
if ( "Enter".equals( keyText ) ) {
System.out.println( "リターンキーが押下されました。" );
doAuthenticate();
}
}
}
);
reset = new JButton( "クリア" );
reset.addActionListener( this );
reset.setActionCommand( "RESET" );
panel.add( reset );
panel.add( new JLabel() );
// パネルをコンテナに配置
Container container = getContentPane();
container.add( panel );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setVisible( true );
pack();
}
public void actionPerformed( ActionEvent event ) {
String command = event.getActionCommand();
if ( "SUBMIT".equals( command ) ) {
doAuthenticate();
}
if ( "RESET".equals( command ) ) {
loginName.setText( "" );
passwd.setText( "" );
}
}
private void doAuthenticate() {
String userName = loginName.getText().trim();
char[] c = passwd.getPassword();
String pwstr = new String( c );
System.out.println( userName + " : " + pwstr );
}
public static void main( String[] args ) {
new LoginForm();
}
}
戻る