2

我有一个JTextField和一个JButton,当用户点击输入时JTextField,必须在相应的JButton. 这是我的代码片段。

我还想禁用JButtonon enter 并在稍后更改某些内容时启用它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());
   }
});
4

3 回答 3

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);
于 2013-07-17T07:11:22.283 回答
3

这是您的代码的修改,我注册了一个DocumentListener监听文本更改JTextField并添加ActionListenerJTextField

    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);
        }
    });
于 2013-07-17T07:11:30.317 回答
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 值发生任何更改后启用按钮。从链接引用的JTextField 值更改侦听器

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);
        }
    });
于 2013-07-17T07:18:42.527 回答