【发布时间】:2010-09-03 22:38:05
【问题描述】:
我正在尝试使用 NetBeans6.8 学习有关 GUI 的知识,从 Java 教程中的 GUI 部分开始。
有一个摄氏-华氏转换器的简单练习。我希望它有两个文本字段,一个用于摄氏温度,一个用于华氏温度;如果用户在摄氏度文本字段中键入,他会在华氏文本字段中得到“打印”的结果。反之亦然。
所以,我在两个文本字段中都设置了一个 KeyTyped 事件,代码如下:
private void celsiusTextKeyTyped(java.awt.event.KeyEvent evt) {
int cels = Integer.parseInt(celsiusText.getText());
int fahr = (int)(cels * 1.8 + 32);
fahrText.setText(fahr + "");
}
private void fahrTextKeyTyped(java.awt.event.KeyEvent evt) {
int fahr = Integer.parseInt(fahrText.getText());
int cels = (int)(fahr / 1.8 - 32);
celsiusText.setText(cels + "");
}
它不起作用。如果我在文本字段中输入内容,我会收到此异常:java.lang.NumberFormatException: For input string: ""
附加监听器的代码:
celsiusText.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
celsiusTextKeyTyped(evt);
}
});
fahrText.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
fahrTextKeyTyped(evt);
}
});
[但是,我不能修改它,它是自动生成的。]
【问题讨论】:
标签: java user-interface keypress netbeans6.8