Качели Jlabel не отображаются - PullRequest
0 голосов
/ 16 июля 2011

У меня есть графический интерфейс для построения дерева.JPanel, которую я расширил, не показывает JLabel, который я создал, когда создавал JPanel.Вот мой код JPanel:

class NodePanel extends JPanel {
    private JLabel content;

    NodePanel() {
        this.setLayout(new FlowLayout());
        this.setBorder(new LineBorder(Color.black));
    }

    NodePanel(String str) {
        this.setLayout(new FlowLayout());
        this.setBorder(new LineBorder(Color.black));

        content = new JLabel(str);
        this.add(content);
    }
}

и вот код, в котором я его тестирую:

NodePanel n1 = new NodePanel(Integer.toString(root.getWeight()));

HuffmanGUI.tp.add(n1);
n1.setBounds((tpWidth / 2) - (panelDim / 2), vertSpace, panelDim, panelDim);

Этот код находится в методе, вызываемом слушателем действия, я знаю, что он работаетпотому что панель показывает, где она должна, но Jlabel не отображается внутри.Почему это может быть?

1 Ответ

1 голос
/ 16 июля 2011

Трудно сказать, потому что мы не знаем контекста того, как используется код.Похоже, что вы смешиваете пустые макеты с менеджерами макетов.

Я мог бы догадаться, что вы добавляете панель в видимый графический интерфейс, и вы не использовали revalidate () на панели, поэтому метка неразмер.

Если вам нужна дополнительная помощь, опубликуйте свой SSCCE, который демонстрирует проблему.

...