Swing Jlabel没有显示

时间:2011-07-16 18:56:11

标签: java swing layout jlabel

我有一个GUI im建筑来说明树。我扩展的JPanel没有显示我在构建JPanel时创建的JLabel。这是我的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 个答案:

答案 0 :(得分:1)

很难分辨,因为我们不知道代码的使用方式。看起来您正在将null布局与布局管理器混合。

我可能猜测您是将面板添加到可见的GUI中,而您没有在面板上使用revalidate(),因此标签没有大小。

如果您需要更多帮助,请发布展示问题的SSCCE。