Java 摆锤未显示

Java 摆锤未显示,java,swing,layout,jlabel,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)); }

我有一个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没有显示在它里面。为什么会这样?

很难说,因为我们不知道代码是如何使用的。看起来您正在将空布局与布局管理器混合

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


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

您已经调用了它。问题是没有调用revalidate()。