Java проходит через JList, который содержит JPanel - JLabel

Я пытаюсь перебрать 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);
} 

Вывод, который я получаю:

Item = javax.swing.JPanel [, 0,0,0x0, недопустимый,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9, MaximumSize=, минимум Size =, предпочитаемый Size=]

Вместо этого я хочу получить доступ к тексту, который находится внутри 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 ответ

Тогда вам нужно проверить элементы внутри этой JPanel. Я имею в виду, что панель - это контейнер элементов пользовательского интерфейса, который говорит, что вам нужно проверить элементы, после того как вы проверили, вам нужно сравнить, является ли это меткой или нет, если это метка, то вы сможете чтобы получить текст этого ярлыка.

Не могли бы вы показать нам код, возможно, будет проще, если вы предоставите фрагмент.

Другие вопросы по тегам