109

EnterJavaでJTextFieldを入力しているときに、誰かが押すタイミングを検出することはできますか?ボタンを作成してデフォルトとして設定する必要はありません。

4

10 に答える 10

179

Aは、 を a と同じようJTextFieldに使用するように設計されました。の方法を参照してください。ActionListenerJButtonaddActionListener()JTextField

例えば:

Action action = new AbstractAction()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        System.out.println("some action");
    }
};

JTextField textField = new JTextField(10);
textField.addActionListener( action );

Enterこれで、キーが使用されたときにイベントが発生します。

また、追加の利点は、ボタンをデフォルトのボタンにしたくない場合でも、リスナーをボタンと共有できることです。

JButton button = new JButton("Do Something");
button.addActionListener( action );

この例では、が追加機能を備えた新しい API であるためAction、 を実装していることに注意してください。たとえば、テキスト フィールドとボタンの両方のイベントを無効にする を無効にすることができます。ActionListenerActionAction

于 2010-12-12T03:36:32.083 に答える
25
JTextField function=new JTextField(8);   
function.addActionListener(new ActionListener(){

                public void actionPerformed(ActionEvent e){

                        //statements!!!

                }});

上記のように JTextField に ActionListener を追加するだけです。アクションを押すEnterと、ステートメントで必要なことが実行されます。

于 2012-05-29T06:21:06.210 に答える
19

のイベントを追加しKeyPressedます。

private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) {
  if(evt.getKeyCode() == KeyEvent.VK_ENTER) {
      // Enter was pressed. Your code goes here.
   }
} 
于 2013-01-08T08:15:32.573 に答える
0

まず、JButton または JTextField にアクション コマンドを追加します。

JButton.setActionCommand("name of command");
JTextField.setActionCommand("name of command");

次に、JTextField と JButton の両方に ActionListener を追加します。

JButton.addActionListener(listener);
JTextField.addActionListener(listener);

その後、あなたに ActionListener の実装を書きます

@Override
public void actionPerformed(ActionEvent e)
{
    String actionCommand = e.getActionCommand();

    if(actionCommand.equals("Your actionCommand for JButton") || actionCommand.equals("Your   actionCommand for press Enter"))
    {
        //Do something
    }
}
于 2014-08-05T21:58:33.257 に答える
-1

JTextField 入力でデフォルトのボタン アクションを設定する場合は、次のようにする必要があります。

//put this after initComponents();

textField.addActionListener(button.getActionListeners()[0]);

ボタンには多くのアクションを含めることができますが、通常は 1 つのみ (ActionPerformed) であるため [0] です。

于 2015-10-24T05:19:21.617 に答える
-1

フレーム内のテキスト フィールドごとに、addKeyListener メソッドを呼び出します。次に、他の人が示しているように、keyPressed メソッドを実装してオーバーライドします。これで、フレーム内の任意のフィールドから Enter キーを押して、アクションをアクティブにすることができます。

@Override
        public void keyPressed(KeyEvent e) {
            if(e.getKeyCode() == KeyEvent.VK_ENTER){
                //perform action
            }
        }
于 2020-08-04T20:30:46.763 に答える