JPanel
上有JButton
和JFrame
在运行时将JLabel
添加到JPanel
点击JButton
。
我使用以下代码:
panel.setLayout(null);
jLabel _lbl=new jLabel();
_lbl.setText("Label");
panel.add(_lbl);
panel.validate();
但JLabel
中没有显示任何JPanel
。
答案 0 :(得分:13)
我看到你创建了一个名为JLabel
的{{1}}:
_lbl
但你永远不会把它添加到你的面板。相反,您可以在面板中添加一个没有文字的新 JLabel _lbl=new JLabel();
:
JLabel
这将构成一个不可见的空标签。
在添加 panel.add(new JLabel());
之后,尝试在revalidate()
个实例上调用repaint()
和JPanel
,如下所示:
JLabel
使用此功能,您可能还需要在帧实例上调用JLabel _lbl=new JLabel("Label");//make label and assign text in 1 line
panel.add(_lbl);//add label we made
panel.revalidate();
panel.repaint();
,以便调整pack()
的大小以适应新组件。
另外请永远不要使用JFrame
/ null
布局这是非常糟糕的做法(除非做动画)并且可能被证明是有问题且非常难以使用。
而是使用Absolute
:
或者如果LayoutManager
上只有一个组件,只需致电JPanel
,因为它会延伸到add(label);
尺寸。
<强>更新强>
这是一个小样本。每次按下JPanel
时,只需将JLabel
添加到JPanel
:
JButton