我正在创建一个用于体育赛事评判的 GUI。有 6 位评委,他们各自将自己的分数输入 GUI 中。然后他们点击计算,程序的目的是将数字从低到高排序,然后从位置 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;
}
最佳答案
此代码无法编译的原因很简单:类型不匹配。 只需分割这一行:
list.add(textFieldRun1Score1.getText());
up: list.add(...)
需要一个 int
作为参数(因为它的模板类型是 Integer
), textFieldRun1Score1.getText()
返回一个String
。因此,您必须首先从 String
转换为 int
。解决此问题的最常见方法是 int value = Integer.parseInt(string);
关于Java swing - list.add 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33164507/