JLabel在JPanel上的java定位
我正在手工编写GUI,在JPanel上定位JLabel时遇到了困难。我试图把它放在JTextField上方的左上角,但它默认位于中间,尽管我正在设置边界:
相关代码:
JPanel mainPanel = new JPanel();
JLabel myFleetLabel = new JLabel("My Fleet");
myFleetLabel.setBounds(1,1, 10, 10);
mainPanel.add(myFleetLabel);
add(mainPanel);
# 1 楼答案
有几种方法可以实现这一点,例如,可以使用
GridBagLayout
作为主布局管理器详见Laying Out Components Within a Container和How to Use GridBagLayout
记住,单个布局管理器不太可能解决所有问题,有时需要使用两个或更多个布局管理器才能实现整体效果
# 2 楼答案
通常需要使用layouts将对象放置在容器中。您应该熟悉布局,以便在swing中真正正确地编写代码
话虽如此,代码不能正常工作的原因是容器默认有一个布局。您可以按如下方式删除布局
但这是非常糟糕的做法,应该始终避免