Java 从Arraylist到JLabel

Java 从Arraylist到JLabel,java,arrays,swing,jlabel,Java,Arrays,Swing,Jlabel,我正在尝试将arraylist内容打印到Jlabel中,但问题是它只显示我添加的最后一个整数,如果有人能帮我的话 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { for(int i = 0; i < list.size(); i++){ jLabel1.setText(list.toString()); } } private void jButton2Act

我正在尝试将arraylist内容打印到Jlabel中,但问题是它只显示我添加的最后一个整数,如果有人能帮我的话

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    for(int i = 0; i < list.size(); i++){
        jLabel1.setText(list.toString());
    }

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    list = new ArrayList<Integer>();
    int a = Integer.parseInt(jTextField1.getText());
    list.add(a);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
对于(int i=0;i
您不需要在循环中为
列表的每个元素添加
列表。toString
,因为您正在执行以下操作:

for(int i = 0; i < list.size(); i++){
   jLabel1.setText(list.toString());
}
这将把
列表的所有内容添加到
jLabel1

为什么只获取最后一个元素? 当您每次在方法
jButton2ActionPerformed
中创建一个新的
ArrayList
时,随后只向这个新创建的列表添加一个元素,您只会得到
jLabel1
中的最后一个元素


您需要有一个只创建一次的列表(只初始化一次),执行的
jbutton2action的每次调用都应该
元素添加到现有列表中(而不是每次都创建一个新的).

JLabel
的文本设置为包含列表所有内容的文本的代码是正确的。如果只显示一个数字,可能是因为标签太小,或者是因为列表只包含一个数字

不过,对于
循环,您不需要使用
,因为即使只调用一次,
list.toString()
也会生成包含所有内容的字符串。但它也应该适用于多个调用,即
for
循环


您的问题是,您正在为每次按下按钮创建一个新列表。这会导致您丢失以前列表中的所有内容,而只保留添加的新编号。所以别那么做。在程序启动时或适当的时候创建一次列表。

为什么每次都要用jButton2方法新建列表?伟人都有同感+是的,你说得对,伟人所见略同:)但我宁愿叫我初学者;)
jLabel1.setText(list.toString());