我的程序有问题。我正在尝试将一个整数放入文本字段中。这是我的代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.MouseEvent.*;
public class GradingSystem extends JFrame{
public GradingSystem(){
super("Grading System");
JLabel pre = new JLabel ("PRELIM GRADE: ");
final JTextField pre1 = new JTextField(10);
JLabel mid = new JLabel("MIDTERM GRADE: ");
final JTextField mid1 = new JTextField(10);
JLabel fin = new JLabel ("FINAL GRADE: ");
final JTextField fin1 = new JTextField(10);
JLabel ave = new JLabel("AVERAGE: ");
final JTextField ave1 = new JTextField(10);
JButton calculate = new JButton("CALCULATE");
FlowLayout flo = new FlowLayout();
setLayout(flo);
add(pre);
add(pre1);
add(mid);
add(mid1);
add(fin);
add(fin1);
add(ave);
add(ave1);
add(calculate);
setSize(315,150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
calculate.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
int i1 = Integer.parseInt(pre1.getText());
int i2 = Integer.parseInt(mid1.getText());
int i3 = Integer.parseInt(fin1.getText());
int i4 = Integer.parseInt(ave1.getText());
i4 = (i1 + i2 + i3) / 3;
ave1.setText(String.valueOf(i4));
}catch(Exception ex){
}
}
});
}
public static void main(String[] a){
GradingSystem gs = new GradingSystem();
}
}
我尝试让 ave1.setText(String.valueOf(i4));
出现在文本字段中,但它不会。
我究竟做错了什么?
最佳答案
你的问题是这一行。
int i4 = Integer.parseInt(ave1.getText());
大概,当您单击“计算”时,ave1
中还没有任何值,因此该行将引发异常,并且永远不会到达它下面的行。
从代码中删除该行,并将单词 int
添加到其下面的行中。
int i4 = (i1 + i2 + i3) / 3;
作为一般规则,空的 catch block ,例如您正在使用的 block
catch(Exception ex){
}
这是一个非常糟糕的想法;因为这意味着当抛出异常时你看不到问题所在。切勿这样做。
关于java - 整数不会出现在文本字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29058068/