Java通过包含JPanel-JLabel的JList进行迭代



我正在尝试迭代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,无效,layout=java.awt.FlowLayout,alignmentX=0.0,alignment Y=0.0,border=,flags=9,maximumSize=,minimumSize=、preferredSize=]

相反,我想访问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);

所以我想找到的文本是"你好"

然后您需要检查JPanel中的元素。我的意思是,面板是UI元素的容器,也就是说,你需要检查元素,一旦检查了元素,你就需要比较它是否是标签,如果它是标签,那么你就可以获得该标签的文本。

你不能给我们看代码吗?如果你提供代码片段,可能会更容易。

最新更新