Dan*_*299 4 java eclipse user-interface swing
我写了一个GUI程序,我不确定我做错了什么.当我运行程序时,它几乎立即退出.希望你能帮忙,这是程序:
public class RandomGame extends JFrame {
private JTextField t1 = new JTextField();
private double t1num = Double.parseDouble(t1.getText());
public RandomGame() {
setLayout(new FlowLayout());
Event1 e1 = new Event1();
t1.addKeyListener(e1);
add(t1);
}
public class Event1 implements KeyListener {
@Override
public void keyPressed(KeyEvent arg0) {
Random r = new Random();
switch (arg0.getKeyCode()) {
case KeyEvent.VK_ENTER:
if(t1num == r.nextInt()) {
t1.setText("You Won!");
}
else {
t1.setText("You Lost.");
}
}
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
public static void main(String[] args) {
RandomGame gui = new RandomGame();
gui.setDefaultCloseOperation(EXIT_ON_CLOSE);
gui.setSize(1280, 800);
gui.setTitle("Random Game");
gui.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
(不要担心进口,我只是没有包括他们)任何帮助将不胜感激.
NumberFormatException
在此行启动时抛出A :
private double t1num = Double.parseDouble(t1.getText());
Run Code Online (Sandbox Code Playgroud)
因为JTextField
t1
将包含一个空的String
.
实际上,这可以简单地保持未分配状态,并将0
采用用于数字原语的默认值.
另外在使用时 Random
t1num == r.nextInt();
Run Code Online (Sandbox Code Playgroud)
可以写成:
t1num == r.nextDouble();
Run Code Online (Sandbox Code Playgroud)
此外KeyListener
,不建议在使用JTextComponents
.在这里,您只需要处理ENTER键操作,这样ActionListener
就可以更好,更简单地使用.
归档时间: |
|
查看次数: |
122 次 |
最近记录: |