cko*_*vee 0 java arrays for-loop if-statement arraylist
我必须创建一个程序,接受用户输入的数字,然后将它们添加到ArrayList,然后以多种方式操作数据.数字必须大于或等于0.我有一个问题,将用户输入添加到ArrayList,我的try和catch语句停止程序崩溃但我无法向ArrayList添加任何东西,有人可以告诉我是什么我在添加过程中做错了吗?这是我的代码:
import java.util.ArrayList;
import java.util.Collections;
public class SumElements extends javax.swing.JFrame {
ArrayList <Integer> values = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
...
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
try
{
//clear outputArea
outputArea.setText(null);
valueInput.setText(null);
outputLabel.setText(null);
//declare variables
int value = Integer.parseInt(valueInput.getText());
//validate input
if (value >= 0){
//add item to array
values.add(value);
//display values
Collections.sort(values);
for (int i = 0; i < values.size(); i++)
{
outputArea.setText(outputArea.getText() + values.get(i) + "\n");
}
}
}
//set default
catch (NumberFormatException a)
{
outputLabel.setText("Please input a valid number.");
}
}
Run Code Online (Sandbox Code Playgroud)
这是因为您在调用之前将文本设置valueInput为null(with valueInput.setText(null)),Integer.parseInt(valueInput.getText())这将抛出NumberFormatException以下类型:
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
Run Code Online (Sandbox Code Playgroud)
所以只需删除该行 valueInput.setText(null);