Java GridBagLayout约束不起作用?
这是我使用Java GridBagLayout约束不起作用?,java,swing,jpanel,layout-manager,gridbaglayout,Java,Swing,Jpanel,Layout Manager,Gridbaglayout,这是我使用GridbagLayout public IntroPanel(){ JPanel intro = new JPanel(new GridBagLayout()); JLabel label1 = new JLabel("Test test test"); label1.setFont(new Font("Helvetica", Font.PLAIN, 40)); label1.setHorizontalAlignment(SwingConstants.
GridbagLayout
public IntroPanel(){
JPanel intro = new JPanel(new GridBagLayout());
JLabel label1 = new JLabel("Test test test");
label1.setFont(new Font("Helvetica", Font.PLAIN, 40));
label1.setHorizontalAlignment(SwingConstants.LEFT);
JLabel label2 = new JLabel("test2 test2 test2");
setPreferredSize(new Dimension(640,480));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 10;
gbc.gridy = 10;
gbc.weightx = 0;
add(label1, gbc);
gbc.gridx = 20;
gbc.gridy = 10;
add(label2, gbc);
}
我更改了所有的gridx
,gridy
,gridbagstraints
来对齐它们,但没有任何效果<用于栅格约束的代码>东北也不起作用。有人能帮忙吗?学习如何创建自己的GUI
主要代码在这里
public static void main(String[] args) {
JFrame frame = new JFrame("Title111111111");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTabbedPane tp = new JTabbedPane();
tp.addTab("Intro", new IntroPanel());
tp.addTab("Catalogue", new CataloguePanel());
JPanel panel = new JPanel();
panel.setBackground(Color.WHITE);
frame.add(panel);
frame.add(tp);
frame.pack();
frame.setVisible(true);
}
线路
add(label1, gbc);
正在添加到此(内部面板)
你可能的意思是:
intro.add(label1, gbc);
编辑:
尝试添加setLayout(新的GridBagLayout())在之前添加s行
add(label1, gbc);
正在添加到此
(内部面板
)
你可能的意思是:
intro.add(label1, gbc);
编辑:
尝试添加setLayout(新的GridBagLayout())代码>在添加之前
s这是您的确切代码吗?看起来这不会被编译。是不是public class IntroPanel
,您的所有代码都在main
中?或者这是其他的方法?我加了主代码这就是你的代码吗?看起来这不会被编译。是不是public class IntroPanel
,您的所有代码都在main
中?或者这是另一种方法?我添加了主代码,它将变成空白,没有任何内容haha@John我认为您可能需要调用setLayout(new gridbagloayout())
?如果您使用的是GridBagConstraints,则始终需要将要使用它们的组件的布局设置为GridBagLayout。因此答案是corect,您需要调用setLayout(newgridbaglayout())调用前的代码>添加(标签1,gbc)代码>@kuporific我还有一个问题。如果我执行gbc.anchor=GridBagConstraints.NORTHWEST;为什么不放在左上角?@John,因为你没有为gbc分配任何权重。weight(权重)
它将变成空白,没有任何内容haha@John我认为您可能需要调用setLayout(new gridbagloayout())
?如果您使用的是gridbagconstraint,您始终需要将要在其上使用的组件的布局设置为GridBagLayout。因此答案是corect,您需要调用setLayout(newgridbaglayout())调用前的代码>添加(标签1,gbc)代码>@kuporific我还有一个问题。如果我执行gbc.anchor=GridBagConstraints.NORTHWEST;为什么不放在左上角?@John,因为你没有为gbc分配任何权重。权重