Java 如何在JTextField上输入时对JButton执行操作?

Java 如何在JTextField上输入时对JButton执行操作?,java,swing,jbutton,actionlistener,jtextfield,Java,Swing,Jbutton,Actionlistener,Jtextfield,我有一个JTextField和一个JButton,当用户点击JTextField上的enter键时,必须对相应的JButton执行操作。这是我的代码片段 另外,我想在回车时禁用JButton,并在JTextField JButton jb=new JButton("Print"); JTextField jt=new JTextField(20); jb.addActionListener(new ActionListener(){ public void actionPerformed(

我有一个
JTextField
和一个
JButton
,当用户点击
JTextField
上的enter键时,必须对相应的
JButton
执行操作。这是我的代码片段

另外,我想在回车时禁用
JButton
,并在
JTextField

JButton jb=new JButton("Print");
JTextField jt=new JTextField(20);
jb.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae)
   {
     System.out.println(jt.getText());
   }
});
    jb=new JButton("Print");
    jt=new JTextField(20);

    jt.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae)
        {
            jb.doClick();
        }
    });

    jt.getDocument().addDocumentListener(new DocumentListener(){
        public void insertUpdate(DocumentEvent de)
        {
            jb.setEnabled(true);
        }
        public void changedUpdate(DocumentEvent de)
        {
            jb.setEnabled(true);
        }
        public void removeUpdate(DocumentEvent de)
        {
            jb.setEnabled(true);
        }
    });

    jb.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae)
        {
            System.out.println(jt.getText());
            jb.setEnabled(false);
        }
    });

将相同的操作侦听器添加到按钮和文本字段:

JButton jb = new JButton("Print");
JTextField jt = new JTextField(20);
ActionListener listener = new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent ae) {
        System.out.println(jt.getText());
    }
}; 
jb.addActionListener(listener);
jt.addActionListener(listener);

这是对您的代码的修改,我注册了一个
DocumentListener
来监听
JTextField
中的文本更改,并将
ActionListener
添加到
JTextField

JButton jb=new JButton("Print");
JTextField jt=new JTextField(20);
jb.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae)
   {
     System.out.println(jt.getText());
   }
});
    jb=new JButton("Print");
    jt=new JTextField(20);

    jt.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae)
        {
            jb.doClick();
        }
    });

    jt.getDocument().addDocumentListener(new DocumentListener(){
        public void insertUpdate(DocumentEvent de)
        {
            jb.setEnabled(true);
        }
        public void changedUpdate(DocumentEvent de)
        {
            jb.setEnabled(true);
        }
        public void removeUpdate(DocumentEvent de)
        {
            jb.setEnabled(true);
        }
    });

    jb.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae)
        {
            System.out.println(jt.getText());
            jb.setEnabled(false);
        }
    });

要对按钮执行相同的操作,请单击并输入,然后按Jfield。

JButton jb = new JButton("Print");
JTextField jt = new JTextField(20);
ActionListener listener = new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent ae) {
        System.out.println(jt.getText());
        // Diable Button after action performed.
        jb.setEnabled(false);
    }
}; 
jb.addActionListener(listener);
jt.addActionListener(listener);
//JtextField值发生任何更改后启用按钮。引用的JTextField值更改侦听器


但是我没有写
JButton
,也没有
监听器
引用!:(这不是你的代码片段所显示的。如果你从一开始就这么说,我的答案会有所不同。