У меня есть пустой JTextField, который пользователь должен изменить с помощью номера int. Однако даже после того, как JTextFiled был заполнен целым числом, когда я иду, чтобы получить String из этого 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);
Когда я запустить программу и я нажимаю Run Боттона 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