Java迭代JList,其中包含JPanel - JLabel

时间:2013-07-23 14:49:04

标签: java swing jlist listcellrenderer

我正在尝试迭代JList,其中每个项目包含: JPanel - JLabel

目前我所拥有的是:

System.out.println("Reading all list items:");
System.out.println("-----------------------");
for (int i = 0; i < menuList.getModel().getSize(); i++) {
     Object item = menuList.getModel().getElementAt(i);;
     System.out.println("Item = " + item);
} 

我得到的输出是:

  

项目=   javax.swing.JPanel中[,0,0,0x0,无效,布局= java.awt.FlowLayout中,alignmentX = 0.0,alignmentY = 0.0,边界=,旗帜= 9,MAXIMUMSIZE =,=的minimumSize,首选大小=]

相反,我想访问JPanel中的文本。

怎么可以这样做?

编辑: 这就是我将JPanel添加到JList

的方法
        menuList = new JList(v);
        v = new Vector <String> ();
        menuList.setListData(v);
.....

    // get our images
    Icon pingImage = new javax.swing.ImageIcon(getClass().getResource("/resources/icnNew.png"));

    // add the images to jlabels with text
    JLabel pingLabel = new JLabel("Hi there", pingImage, JLabel.LEFT);

    // create the corresponding panels
    JPanel pingPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));

    // add the labels onto the panels
    pingPanel.add(pingLabel);

    v.add(pingPanel);

所以我想找的文字是“你好”

1 个答案:

答案 0 :(得分:0)

然后你需要检查JPanel中的元素。我的意思是,面板是一个UI元素的容器,说,你需要检查元素,一旦你检查了你需要比较它是否是一个标签,如果它是一个标签,那么你将能够获取该标签的文本。

您无法向我们展示代码,如果您提供代码段可能会更容易。