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
,也没有监听器
引用!:(这不是你的代码片段所显示的。如果你从一开始就这么说,我的答案会有所不同。