Java 将JList复制到arrayList时出错

Java 将JList复制到arrayList时出错,java,swing,jlist,Java,Swing,Jlist,我正在尝试将JList复制到数组列表中 ArrayList<String> aList= new ArrayList<String>(); size= list.getModel().getSize(); //list is a JList defined elsewhere for(int i=0;i< size ;i++){ aList.add(list.toString()); } ArrayList aLis

我正在尝试将JList复制到数组列表中

    ArrayList<String> aList= new ArrayList<String>();
    size= list.getModel().getSize(); //list is a JList defined elsewhere
    for(int i=0;i< size ;i++){
        aList.add(list.toString());
    }
ArrayList aList=new ArrayList();
size=list.getModel().getSize()//列表是在别处定义的JList
对于(int i=0;i
但这似乎不是复制内容,而是复制JList的属性。 输出<代码>:javax.swing.JList[,0,0414x390,无效,alignmentX=0.0,alignmentY=0.0,border=,flags=50331944,maximumSize=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1,HorizontalScrollScrollIncrement=-1,selectionBackground=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],SelectionForegrough=sun.swing.PrintColorUIResource=1[r=51,g=51,b=51],visibleRowCount=8,layoutOrientation=0]

如何阅读内容?有没有更简单的方法来阅读内容(如toArray())

谢谢

您正在复制JList的“toString”,它只是JList的“人类可读”表示形式。 您必须复制内容,例如通过在JList的模型中迭代:

ListModel model : list.getModel();
for (int i=0; i < model.getSize(); i++) {
  aList.add(model.getElementAt(i));
}
ListModel模型:list.getModel();
对于(int i=0;i
您正在复制JList的“toString”,它只是JList的“人类可读”表示形式。 您必须复制内容,例如通过在JList的模型中迭代:

ListModel model : list.getModel();
for (int i=0; i < model.getSize(); i++) {
  aList.add(model.getElementAt(i));
}
ListModel模型:list.getModel();
对于(int i=0;i
调用
JList#toString()
在任何情况下都无法工作,因为您似乎认为它可能会工作。请打印一个调用以查看它返回的结果。相反,您需要获取JList的模型,然后通过
getElement(…)
方法获取它持有的每个元素

aList.add(list.getModel().getElement(i));
调用
JList#toString()
在任何情况下都无法工作,因为您似乎认为它可能会工作。请打印一个调用以查看它返回的结果。相反,您需要获取JList的模型,然后通过
getElement(…)
方法获取它持有的每个元素

aList.add(list.getModel().getElement(i));
就像前面提到的(气垫船和Thierry)一样,即使使用.toString或获取空输出,也不起作用。也不要忘记JList come javax。不过,如果不是任何事件,我建议使用它: DefaultListModelforJList,希望对您有所帮助

import java.util.ArrayList; import javax.swing.DefaultListModel; public class Jlistinjarry { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList xaList = new ArrayList(); xaList.add("a"); xaList.add("b"); xaList.add("c"); DefaultListModel model = new DefaultListModel(); for(String s:xaList){ model.addElement(s); } System.out.println( model); } } 导入java.util.ArrayList; 导入javax.swing.DefaultListModel; 公共类jlistinjary{ 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 ArrayList xaList=新的ArrayList(); xaList.添加(“a”); xaList.添加(“b”); xaList.添加(“c”); DefaultListModel=新的DefaultListModel(); for(字符串s:xaList){ 模型.附录; } System.out.println(模型); } } 就像前面提到的(气垫船和Thierry)一样,即使使用.toString或获取空输出,也不起作用。也不要忘记JList come javax。不过,如果不是任何事件,我建议使用它: DefaultListModelforJList,希望对您有所帮助

import java.util.ArrayList; import javax.swing.DefaultListModel; public class Jlistinjarry { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList xaList = new ArrayList(); xaList.add("a"); xaList.add("b"); xaList.add("c"); DefaultListModel model = new DefaultListModel(); for(String s:xaList){ model.addElement(s); } System.out.println( model); } } 导入java.util.ArrayList; 导入javax.swing.DefaultListModel; 公共类jlistinjary{ 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 ArrayList xaList=新的ArrayList(); xaList.添加(“a”); xaList.添加(“b”); xaList.添加(“c”); DefaultListModel=新的DefaultListModel(); for(字符串s:xaList){ 模型.附录; } System.out.println(模型); } }
我不知道如何读取JList中的特定索引。例如,getValueAtIndex(arg0)我不知道如何读取JList中的特定索引。例如,getValueAtIndex(arg0)这是可行的。但您能否解释一下,当JList实际上是列表时,为什么值存储在listModel中?在swing中,数据总是由“模型”管理,组件(JList,JTable,…)管理“视图”(用户界面),就像@Thierry所说的那样。这是可行的。但是你能解释一下为什么当JList实际上是列表时,值存储在listModel中吗?在swing中,数据总是由“模型”管理,组件(JList,JTable,…)管理“视图”(用户界面)与@Thierry所说的完全一样。他的答案是1+。