Java 创建扩展keyListener的类
在我的java项目中,我想在几个不同的类中检查每个JTextField中的输入(使用完全相同的代码) 现在我一遍又一遍地复制相同的代码,有人建议我有两个选项:Java 创建扩展keyListener的类,java,swing,overriding,listener,extends,Java,Swing,Overriding,Listener,Extends,在我的java项目中,我想在几个不同的类中检查每个JTextField中的输入(使用完全相同的代码) 现在我一遍又一遍地复制相同的代码,有人建议我有两个选项: 创建一个方法并调用该方法 创建一个新类,该类从另一个具有所需方法的类(我还不知道是哪个)扩展而来 我现在使用的代码是: totalAmount.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent arg0) { //do som
totalAmount.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent arg0) {
//do something
}
});
新课程是:
public class Listener extends KeyAdapter {
public void keyTyped(KeyEvent arg0){
//do something
}
}
问题是我不知道我是否扩展了正确的类,以及如何使用我编写的新类
提前谢谢 要使用密钥适配器执行所需操作,请使用
totalAmount.addKeyListener(new Listener());
您的密钥适配器的代码是正确的
public class Listener extends KeyAdapter {
public void keyTyped(KeyEvent arg0){
//do something
}
}
要从JTextField
获取文本,您可以在keyAdapter
System.out.println(totalAmount);
或者,最好使用文档侦听器。这将由
public class documentListener implements DocumentListener //This is a listener
{
public void changedUpdate(DocumentEvent e){
}
public void removeUpdate(DocumentEvent e){
int lengthMe = e.getDocument().getLength();
System.out.println(e.getDocument().getText(0,lengthMe));
}
public void insertUpdate(DocumentEvent e){
int lengthMe = e.getDocument().getLength();
System.out.println(e.getDocument().getText(0,lengthMe));
}
}
它将被添加到JTextField
totalAmount.getDocument().addDocumentListener(new documentListener());
要使用密钥适配器执行所需的操作,请使用
totalAmount.addKeyListener(new Listener());
您的密钥适配器的代码是正确的
public class Listener extends KeyAdapter {
public void keyTyped(KeyEvent arg0){
//do something
}
}
要从JTextField
获取文本,您可以在keyAdapter
System.out.println(totalAmount);
或者,最好使用文档侦听器。这将由
public class documentListener implements DocumentListener //This is a listener
{
public void changedUpdate(DocumentEvent e){
}
public void removeUpdate(DocumentEvent e){
int lengthMe = e.getDocument().getLength();
System.out.println(e.getDocument().getText(0,lengthMe));
}
public void insertUpdate(DocumentEvent e){
int lengthMe = e.getDocument().getLength();
System.out.println(e.getDocument().getText(0,lengthMe));
}
}
它将被添加到JTextField
totalAmount.getDocument().addDocumentListener(new documentListener());
1) 在您的例子中,
totalAmount.addKeyListener(instanceOfYourListener)代码>2)但您应该使用来检查JTextField
中的更改,而不是KeyListener
.1)totalAmount.addKeyListener(new Listener(){keyTyped(arg0);}?它不起作用…2)我正在尝试检查用户键入的每个键,这是eclipse给我的。。。现在我的代码正在运行,我只需要每次都复制它…一种方法是执行totalAmount.addKeyListener(newListener())代码>。但是,您也只能对所有文本字段使用侦听器的一个实例。@我添加了一个答案。我希望有帮助。如果你觉得它足够正确,你可以用答案旁边的勾号接受它并投票。但如果是错误的,请告诉我:)这似乎是我一直在寻找的解决方案,谢谢!老实说,我没有听懂最后一句话。然而,如果你的意思是我不能在我的文本字段中使用其他侦听器类型,那么现在我看不出需要它的原因。虽然如果有另一个选项,而不是为每个侦听器创建另一个类,这将是一件好事……1)在您的示例中,totalAmount.addKeyListener(instanceOfYourListener)代码>2)但您应该使用来检查JTextField
中的更改,而不是KeyListener
.1)totalAmount.addKeyListener(new Listener(){keyTyped(arg0);}?它不起作用…2)我正在尝试检查用户键入的每个键,这是eclipse给我的。。。现在我的代码正在运行,我只需要每次都复制它…一种方法是执行totalAmount.addKeyListener(newListener())代码>。但是,您也只能对所有文本字段使用侦听器的一个实例。@我添加了一个答案。我希望有帮助。如果你觉得它足够正确,你可以用答案旁边的勾号接受它并投票。但如果是错误的,请告诉我:)这似乎是我一直在寻找的解决方案,谢谢!老实说,我没有听懂最后一句话。然而,如果你的意思是我不能在我的文本字段中使用其他侦听器类型,那么现在我看不出需要它的原因。虽然如果有另一个选项,而不是为每个侦听器创建另一个类,这将是很好的…1+赞成票“最好您可以使用DocumentListener”。OP实际上不应该向JTextField添加KeyListener,因为这可能会以错误和意外的方式改变文本字段的本机行为。我不确定他在听哪个键,但如果是回车键,那么最好的解决方案是在JTextField中添加一个ActionListener。1+以上的投票支持“最好使用DocumentListener”。OP实际上不应该向JTextField添加KeyListener,因为这可能会以错误和意外的方式改变文本字段的本机行为。我不确定他在监听哪个键,但如果是enter键,那么最好的解决方案是向JTextField添加ActionListener。