Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java swing-list.add问题_Java_Swing_Arraylist - Fatal编程技术网

Java swing-list.add问题

Java swing-list.add问题,java,swing,arraylist,Java,Swing,Arraylist,我正在创建一个用于体育赛事的GUI。共有6名评委,他们将各自的分数输入GUI。然后点击calculate,该程序将数字从低到高排序,然后从第1位到第4位取数字并给出平均值 我已经编写了通过控制台输入的代码,这很有效,但是当我尝试我的Gui时,“list.add”不起作用。我不知道我是不是要用别的东西 btnCalculate = new JButton("Calculate"); btnCalculate.addActionListener(new ActionListener(

我正在创建一个用于体育赛事的GUI。共有6名评委,他们将各自的分数输入GUI。然后点击calculate,该程序将数字从低到高排序,然后从第1位到第4位取数字并给出平均值

我已经编写了通过控制台输入的代码,这很有效,但是当我尝试我的Gui时,“list.add”不起作用。我不知道我是不是要用别的东西

    btnCalculate = new JButton("Calculate");
    btnCalculate.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            inGui = new Scanner (System.in);
            double firstRun = getAverageOfRun(1);
            double secondRun = getAverageOfRun(2);
            double best;

            if (firstRun > secondRun) {
                best = firstRun;
            } else {
                best = secondRun;
            }
            textFieldRun1Score.setText(Double.toString(best));
            }
        private double getAverageOfRun (int runNumber) {
            double total, avg;
            int num1, num2, num3, num4, num5, num6;
            List<Integer> list = new ArrayList<Integer>();

            num1 = Integer.parseInt(textFieldRun1Score1.getText());

            System.out.print(""+runNumber +": ");
            list.add(textFieldRun1Score1.getText());
            list.add(textFieldRun1Score2.getText());
            list.add(textFieldRun1Score3.getText());
            list.add(textFieldRun1Score4.getText());
            list.add(textFieldRun1Score5.getText());
            list.add(textFieldRun1Score6.getText());

            Collections.sort(list);

            total = list.get(1) + list.get(2) + list.get(3) + list.get(4);

            avg = total / 4;

            textFieldBestScore.setText(Double.toString(avg));
            return avg;

        }
btnCalculate=新的JButton(“计算”);
btnCalculate.addActionListener(新的ActionListener(){
已执行的公共无效操作(操作事件e){
inGui=新扫描仪(System.in);
double firstRun=getAverageOfRun(1);
double Second Run=getAverageOfRun(2);
双倍最佳;
如果(第一次运行>第二次运行){
最佳=首次运行;
}否则{
最佳=第二次运行;
}
textFieldRun1Score.setText(Double.toString(最佳));
}
private double getAverageOfRun(int runNumber){
平均双倍总数;
整数num1、num2、num3、num4、num5、num6;
列表=新的ArrayList();
num1=Integer.parseInt(textFieldRun1Score1.getText());
系统输出打印(“+runNumber+”:”);
添加(textFieldRun1Score1.getText());
添加(textFieldRun1Score2.getText());
添加(textFieldRun1Score3.getText());
添加(textFieldRun1Score4.getText());
添加(textFieldRun1Score5.getText());
添加(textFieldRun1Score6.getText());
集合。排序(列表);
总计=列表。获取(1)+列表。获取(2)+列表。获取(3)+列表。获取(4);
平均值=总数/4;
textFieldBestScore.setText(Double.toString(avg));
返回平均值;
}

此代码无法编译,原因很简单:类型不匹配。 把这条线分开:

list.add(textFieldRun1Score1.getText());
up:
list.add(…)
需要一个
int
作为参数(因为它的模板类型是
Integer
),
textFieldRun1Score1.getText()
返回一个
String
。因此,您必须首先将
String
转换为
int
。最常用的解决方法是
int value=Integer.parseInt(字符串);

无法工作,因为您试图将
字符串
添加到
整数列表

首先将
字符串
解析为
整数

list.add(Integer.parseInt(textFieldRun1Score1.getText()));

编辑(不是对您问题的回答,而是一般性建议):

而不是做:

double best;

if (firstRun > secondRun) {
    best = firstRun;
} else {
    best = secondRun;
}

只需使用:
double best=Math.max(firstRun,secondRun);

“不想工作”,上面写着什么!显示错误详细信息。抱歉,我下次会记住。现在全部排序谢谢!我更改了“double”并且它工作了。使它更整洁一些
double best;

if (firstRun > secondRun) {
    best = firstRun;
} else {
    best = secondRun;
}