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();
}
}
});
這是我想為我的很多 JTextFields 提供的 KeyListener,但是我不再知道如何去做。我嘗試創建擴展 JTextField 并實作 KeyListener 的類(在 KeyTyped 下使用此代碼),但這并沒有解決我的問題(在我的應用程式的 .form 中,有一個錯誤提示找不到 Class 并且“Form contains components with custom create選項但沒有 createuicomponents() 方法”,在創建 createuicomponents() 程式啟動后,但我的自定義 JTextField 無法正常作業。有什么方法可以輕松做到這一點,還是我犯了一些我不知道的錯誤?我我在 Java 方面真的不是很先進,請幫助 ;(
uj5u.com熱心網友回復:
你讓你的匿名類成為一個真正的類。
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JTextField;
public class JTextFieldKeyListener extends KeyAdapter {
private final JTextField textField;
public JTextFieldKeyListener(JTextField textField) {
this.textField = textField;
}
@Override
public void keyTyped(KeyEvent e) {
super.keyTyped(e);
char key = e.getKeyChar();
String text = textField.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(".")) {
textField.setText(String.valueOf(
(Double.parseDouble(text)) * (-1)));
e.consume();
}
}
}
然后,您可以根據需要創建盡可能多的實體。
f1TextField.addKeyListener(new JTextFieldKeyListener(f1TextField));
f2TextField.addKeyListener(new JTextFieldKeyListener(f2TextField));
f3TextField.addKeyListener(new JTextFieldKeyListener(f3TextField));
...
如果您使用的是 GUI 構建器,則必須弄清楚如何添加新的類和實體呼叫。這就是為什么我總是建議您手動撰寫 Swing 代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/511829.html
上一篇:如何比較兩個按鈕java
