使用循环向arraylist添加元素

时间:2015-06-04 02:16:37

标签: java user-interface arraylist

我的问题很简单,但我找不到解决问题的方法。基本上我想创建一个Arraylist并使用循环添加元素(最多尽可能多的元素)。我正在使用netbeans gui,每当我按下“添加”按钮时,我想将字符串变量名称和大写添加到我的arraylist并将其显示在TextArea中。 类似的东西:

[london, england,america,united states etc..] 

到目前为止,它唯一能做的就是多次打印两个变量name和capital,如:

[londonn, england, london, england etc..]

这是代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String name, capital;
    ArrayList<String> input = new ArrayList<>();
    name = jTextField1.getText();
    capital = jTextField2.getText();
    for(int i=0;i < 10;i++) {
        input.add(name);
        input.add(capital);
        jTextArea4.setText(String.valueOf(input));
    }      
}

5 个答案:

答案 0 :(得分:0)

尝试将jTextArea4.setText(String.valueOf(input))移到for loop

之外

答案 1 :(得分:0)

如果您希望ArrayList不断增长,那么您需要将其变为类变量,而不是jButton1ActionPerformed的本地变量。

同时取出for循环。当您向ArrayList添加新名称和资金时,您只需要执行一次。

这样的事情:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // Make sure input is a class variable and it will continue to grow                                         
    input.add(jTextField1.getText());
    input.add(jTextField2.getText());
    jTextArea4.setText(String.valueOf(input));      
}

一旦您的ArrayList是一个类变量,您就会想要一种方法来清除ArrayList或从中移除项目。

答案 2 :(得分:0)

您需要将以下代码保留在循环之外:

jTextArea4.setText(String.valueOf(input));

答案 3 :(得分:0)

你必须删除for循环,因为你要存储多次相同的值。

你可以这样做。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String name, capital;
ArrayList<String> input = new ArrayList<>();
name = jTextField1.getText();
capital = jTextField2.getText();
    input.add(name);
    input.add(capital);
    jTextArea4.setText(String.valueOf(input));  

}

这里是从文本字段中获取名称和大写值,然后插入到arraylist中,然后在textfield4中显示arraylist的值..

如果你想添加尽可能多的元素,但是当你设置jtextField4时,你必须从输入arraylist中获取最后一个元素,因为arraylist对象包含10个stings。

像这样

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String name, capital;
ArrayList<String> input = new ArrayList<>();
name = jTextField1.getText();
capital = jTextField2.getText();
for(int i=0;i < 10;i++) {
    input.add(name);
    input.add(capital);
    jTextArea4.setText(String.valueOf(input.get(input.size)));
}      

}

我希望这会对你有所帮助。

答案 4 :(得分:0)

完全删除循环。如果你想让arraylist有用,你必须使它成为一个类级变量

ArrayList<String> input = new ArrayList<>();

private void jButton1ActionPerformed(ActionEvent evt) {                                         
String name, capital;
name = jTextField1.getText();
capital = jTextField2.getText();
    input.add(name);
    input.add(capital);
    jTextArea4.setText(String.valueOf(input));

}