java - 整数不会出现在文本字段中

标签 java awt

我的程序有问题。我正在尝试将一个整数放入文本字​​段中。这是我的代码:

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/

相关文章:

java - 在 Java 中集成 BreezyGUI 和键绑定(bind)

java - 使用鼠标编辑形状位置

Java jFrame Canvas 绘制点而不是线

java - 通过谓词限制流

java - 在 Android Studio 中使用 JSch 连接到 SSH 时应用程序被强制关闭

java - Libgdx 无需 TiledMap 创建快速 map

java - 确定 Canvas 何时调整大小的最佳实践是什么?

java - KeyListener 的调用顺序是否有保证?

java - 使用 gradle 将 pom.xml 包含在 Jar 中

java.lang.ClassNotFoundException : SecuGen. FDxSDKPro.jni.JSGFPLib