Java 摆锤未显示
我有一个GUI im构建来演示一棵树。我扩展的JPanel没有显示我在构建JPanel时创建的JLabel。以下是我的JPanel代码: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)); }
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()。