我有一個空的JTextField,用戶應該用一個int數字修改它。但是,即使JTextFiled已經填充了一個整數,當我從該JTextField獲取字符串時,字符串結果爲「」( - > empty)。 我怎樣才能保存字段的新值?我該怎麼辦? 這裏的問題:如何在用戶修改後獲取JTextField的值[java]
//Class where JTextField is initialized:
javax.swing.JTextField tMax = new javax.swing.JTextField();
tMax.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
tMaxKeyTyped(evt);
}
});
private void tMaxKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char c = evt.getKeyChar();
if(!(Character.isDigit(c) || (c == KeyEvent.VK_BACK_SPACE) || c == KeyEvent.VK_DELETE)) {
getToolkit().beep();
evt.consume();
}
}
public String getTMax() {
String tMaxString = tMax.getText();
return tMaxString;
}
//Class where tMax should be used
//code
private void runBtnActionPerformed(java.awt.event.ActionEvent evt) {
Panel class1 = new Panel();
String tMaxString = class1.getTMax();
System.out.println(tMaxString);
當我運行該程序,我點擊運行德波頓的Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
。
我能做些什麼來保存修改的JTextField? 非常感謝。
KeyListener不是你想要的。使用一個ActionListener。教程:https://docs.oracle.com/javase/tutorial/uiswing/components/button.html – markspace
@Pino任何你沒有導入類似'java.awt','javax.swing'的包的原因?你的代碼有點難以閱讀。 – user3437460