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

时间:2013-07-17 07:08:15

标签: java swing jbutton actionlistener jtextfield

我有JTextFieldJButton,当用户点击JTextField时,必须在相应的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());
   }
});

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

以下是对您的代码的修改,我在DocumentListener注册JTextField以收听文字更改,并将ActionListener添加到JTextField

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

答案 2 :(得分:2)

要在按钮上单击执行相同的操作,请在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值发生任何更改后启用Button。 JTextField值更改侦听器引用from Link

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