private JTextField f1TextField;
f1TextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
super.keyTyped(e);
char key = e.getKeyChar();
String text = f1TextField.getText().trim();
if((text.indexOf('.') > -1) && key == '.'){
e.consume();
}
if(!Character.isDigit(key) && key != '.' && key != '-'){
e.consume();
}
if((text.indexOf('-') > -1) && key == '-'){
e.consume();
}
if((text.indexOf('-') == -1) && key == '-' && !text.equals("") && !text.equals(".")){
f1TextField.setText(String.valueOf((Double.parseDouble(text))*(-1)));
e.consume();
}
}
});
这是我想为我的许多JTextField提供的KeyListener,但是我不知道该怎么做。我试着创建一个类来扩展JTextField并实现KeyListener(将此代码放在KeyTyped下),但这并没有解决我的问题(在我的应用程序的.form中,出现了一个错误,指出找不到类,并且“Form包含具有自定义创建选项的组件,但没有createuicomponents()”方法””,在创建createuicomponents()后,程序启动,但我的自定义JTextField无法正常工作。是否有任何方法可以轻松完成此操作?或者我是否犯了一些我不知道的错误?我的Java水平确实不高,请帮助;(
1条答案
按热度按时间zzzyeukh1#
您可以将匿名类设置为实际的类。
然后,创建所需数量的示例。
如果您使用的是GUI构建器,那么您必须弄清楚如何添加新的类和示例调用,这就是为什么我总是建议您手工编写Swing代码。