Java 从Arraylist到JLabel
我正在尝试将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
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());