指定したJComponentにフォーカスの設定をする

戻る



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.util.*;

/**
* $Id: requestFocusInWindow.html,v 1.1 2009/06/22 16:12:24 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( "" );
        }

	
	// ログイン名入力フィールドにフォーカスする
        loginName.requestFocusInWindow();
	

    }

    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();
    }

}

戻る inserted by FC2 system