,

Javaでのフォーカス移動(2)

検索履歴を確認すると「Javaでのフォーカス移動」についての記事が結構読まれていました。この記事を読んでEnt…

検索履歴を確認すると「Javaでのフォーカス移動」についての記事が結構読まれていました。この記事を読んでEnterキーによるフォーカス移動を理解するのは困難だと感じ、補足記事を書きたいと思います。

まずはキーチェック用のクラスを作成します。以下のクラス(KeyCheck.java)としてEnterキー取得を実装します。

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

/**
キー入力チェック
*/
public class KeyCheck implements KeyListener{

/**
キーが押された
*/
public void keyPressed( KeyEvent e){

JTextField txt = (JTextField)e.getSource();

if ( e.getKeyCode() == KeyEvent.VK_ENTER ){
  try{
    txt.transferFocus();
  }catch(Exception ex){
    System.out.println(ex.toString());
  }
}

}

public void keyTyped( KeyEvent e){}

public void keyReleased( KeyEvent e){}
}

パッケージにする場合は先頭にpackage文を記載します。このクラスをEnterキーを入力されたときに動作するテキストフィールドにaddKeyListenerを使って拡張します。スコープは広めにとっておきます。

private JTextField txtOrderNo = new JTextField(); // 注文番号入力

UIを構築するときにキーリスナーを加えます。コンストラクターに記載すると良いと思います。

txtOrderNo.addKeyListener( new KeyCheck() ); // キーリスナーを追加

これでEnterキーを入力されたときに次のコンポーネント(UI部品、テキストフィールドなど)にフォーカスが移動します。最初の記事を書いたのが2005年1月ですので、17年前くらいになるのですね。実装が難しければ、小さいサンプルを作ってテストをしてください。

Tags:

コメントを残す