我正在尝试在JPanel上的特定X和Y坐标处放置一系列JLabel(并设置其高度和宽度)。无论我做什么,每个标签都会立即卷到前一个标签的右侧,并且与所有其他标签的尺寸完全相同。
现在,我的Jpanel处于网格布局中。我尝试过Absolute Layout(非法参数异常结果),Free Design(没有标签出现),Flow Layout(一切都被挤到中心),以及其他一些。
不知道我需要做些什么来使这项工作。有人可以帮忙吗?谢谢!
JLabel lbl1 = new JLabel("label 1");
JLabel lbl2 = new JLabel("label 2");
JLabel lbl3 = new JLabel("label 3");
JLabel lbl4 = new JLabel("label 4");
JLabel lbl5 = new JLabel("label 5");
myPanel.add(lbl1);
myPanel.add(lbl2);
myPanel.add(lbl3);
myPanel.add(lbl4);
myPanel.add(lbl5);
lbl1.setLocation(27, 20);
lbl2.setLocation(123, 20);
lbl3.setLocation(273, 20);
lbl4.setLocation(363, 20);
lbl5.setLocation(453, 20);
lbl1.setSize(86, 14);
lbl2.setSize(140, 14);
lbl3.setSize(80, 14);
lbl4.setSize(80, 14);
lbl5.setSize(130, 14);
发布于 2018-12-11 13:10:13
通过调用setLayout(null)将容器的布局管理器设置为null。
为每个容器的子节点调用Component类的setbounds方法。
调用Component类的重绘方法。
注意:
如果调整包含容器的窗口大小,则使用绝对定位的容器创建容器会导致问题。
发布于 2018-12-11 14:03:01
您必须将容器的布局设置为null:
myPanel.setLayout(null);
不过也是一个很好的建议,看看马蒂斯布局管理器,我想它现在叫做GroupLayout。绝对定位的主要问题是当窗口改变其大小时会发生什么。
https://stackoverflow.com/questions/-100003048
复制相似问题