【问题标题】:Java iterate through JList which contains JPanel - JLabelJava遍历包含JPanel的JList - JLabel
【发布时间】:2013-07-23 14:49:04
【问题描述】:

我正在尝试遍历每个项目包含的 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,invalid,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=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);

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

【问题讨论】:

  • 面板里面有什么文字??什么属性?
  • @JBNizet,请您使用礼貌和专业的语言。
  • 对不起,我还是 Java 新手。但是,必须能够以某种方式访问​​ JLabel 中存储的内容,这些内容存储在 JPanel 中
  • 阅读 Oracle 教程如何使用 List 和如何使用 Tables for Renderers 概念(JTable、JList、JComboBox 相同/非常相似)
  • Edit: This is how i add my JPanel to the JList - 与我上面的评论相同,并且(没有任何更改评论)@JBNizet,

标签: java swing jlist listcellrenderer


【解决方案1】:

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

你不能给我们看看代码吗,如果你提供sn-p可能会更容易。

【讨论】:

  • 对不起,我失眠了哈哈哈。检查(:编辑:好的,我明白了,这正是我之前所说的。这个链接可以帮助你理解你对组件进行分组的方式java.ittoolbox.com/documents/…,这样你就可以迭代组件并做任何你想做的事情想和他们一起。希望它有帮助(:
猜你喜欢
  • 2012-04-21
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2014-08-12
  • 2014-06-30
相关资源
最近更新 更多