我有JTextField
和JButton
,当用户点击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());
}
});
答案 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);
}
});