在Java中向数组添加整数

在Java中向数组添加整数,java,arrays,if-statement,for-loop,arraylist,Java,Arrays,If Statement,For Loop,Arraylist,我必须创建一个程序,接受用户输入的数字,然后将它们添加到ArrayList中,然后以多种方式处理数据。数字必须大于或等于0。我在将用户输入添加到ArrayList时遇到问题,我的try-and-catch语句阻止了程序崩溃,但我无法向ArrayList添加任何内容,有人能告诉我在添加过程中我做错了什么吗? 这是我的密码: import java.util.ArrayList; import java.util.Collections; public class SumElements exte

我必须创建一个程序,接受用户输入的数字,然后将它们添加到ArrayList中,然后以多种方式处理数据。数字必须大于或等于0。我在将用户输入添加到ArrayList时遇到问题,我的try-and-catch语句阻止了程序崩溃,但我无法向ArrayList添加任何内容,有人能告诉我在添加过程中我做错了什么吗? 这是我的密码:

import java.util.ArrayList;
import java.util.Collections;

public class SumElements extends javax.swing.JFrame {
ArrayList <Integer> values = new ArrayList();
import java.util.ArrayList;
导入java.util.Collections;
公共类summelements扩展了javax.swing.JFrame{
ArrayList值=新的ArrayList();

private void addButtonActionPerformed(java.awt.event.ActionEvent evt){
尝试
{
//净输出区
outputArea.setText(空);
valueInput.setText(空);
outputLabel.setText(空);
//声明变量
int value=Integer.parseInt(valueInput.getText());
//验证输入
如果(值>=0){
//将项添加到数组
增加(价值);
//显示值
集合。排序(值);
对于(int i=0;i
这是因为在调用
Integer.parseInt(valueInput.getText())
之前,您将
valueInput的文本设置为
null
(使用
valueInput.setText(null)
),这将抛出以下类型的
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)

因此,只需删除行
valueInput.setText(null);

这是因为在调用
Integer.parseInt(valueInput.getText())
之前,您将
valueInput
的文本设置为
null
(使用
valueInput.setText(null)
),这将抛出以下类型的
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)

因此,只需删除行
valueInput.setText(null);

就可以只解析那些表示数字的字符串。指向null的字符串变量肯定不表示数字。我建议用以下方式修改代码:

    //declare variables
    int value = Integer.parseInt(valueInput.getText());

    //clear outputArea
    valueInput.setText("");
    outputLabel.setText("");

    //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");
        }
//声明变量
int value=Integer.parseInt(valueInput.getText());
//净输出区
valueInput.setText(“”);
outputLabel.setText(“”);
//验证输入
如果(值>=0){
//将项添加到数组
增加(价值);
//显示值
集合。排序(值);
对于(int i=0;i
您只能解析那些表示数字的字符串。指向null的字符串变量肯定不表示数字。我建议您以这种方式修改代码:

    //declare variables
    int value = Integer.parseInt(valueInput.getText());

    //clear outputArea
    valueInput.setText("");
    outputLabel.setText("");

    //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");
        }
//声明变量
int value=Integer.parseInt(valueInput.getText());
//净输出区
valueInput.setText(“”);
outputLabel.setText(“”);
//验证输入
如果(值>=0){
//将项添加到数组
增加(价值);
//显示值
集合。排序(值);
对于(int i=0;i
Do//解析输入并将其保存到变量后清除输出区域!

Do//解析输入并将其保存到变量后清除输出区域!

您首先将
valueInput
的文本设置为
null
,然后读取它-您期望得到的结果是什么首先将
valueInput
的文本设置为
null
,然后读取它-您希望得到什么结果?