我的问题很简单,但我找不到解决问题的方法。基本上我想创建一个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));
}
}
答案 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));
}