我试图将左边的所有按钮全部对齐,但无论我做什么,似乎总是留在中心,我尝试过“c.anchor = GridBagConstraints.EAST;”但这没有帮助,现在我卡住请帮忙。
JButton Button1 = new JButton("<html> Li <center> <small> 7 <br> 3<small/> <center/> <html/> ");
JButton Button2 = new JButton("<html> Na <center> <small> 32<br> 11<small/> <center/> <html/> ");
JButton Button3 = new JButton("<html>K<center><small> 39 <br> 19<small/> <center/> <html/> ");
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
int width = gd.getDisplayMode().getWidth();
int height = gd.getDisplayMode().getHeight();
Button1.setPreferredSize(new Dimension(50, 50));
Button2.setPreferredSize(new Dimension(50, 50));
Button3.setPreferredSize(new Dimension(50, 50));
GridBagLayout layout = new GridBagLayout() ;
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.anchor = GridBagConstraints.EAST;
setLayout(layout);
add(Button1, c);
add(Button2, c);
add(Button3, c);
add(exit);
setSize(width, height);
setExtendedState(JFrame.MAXIMIZED_BOTH);
//TODO Align to left
setUndecorated(true);
setLocationRelativeTo(null);
答案 0 :(得分:2)
ID
一方面,您将所有组件添加到同一个单元格,因为您使用相同的约束。如果你想要它们在不同的行上,那么你需要指定一个不同的&#34; gridy&#34;每个组件的价值。
似乎总是留在中心,
除非您指定c.gridx = 0;
c.anchor = GridBagConstraints.EAST;
setLayout(layout);
add(Button1, c);
add(Button2, c);
add(Button3, c);
add(exit);
值,否则这是默认行为。
更简单的方法是使用带有weightx/weighty
的JPanel。将所有按钮添加到面板。最后,使用以下方法将面板添加到框架中:
GridLayout
我建议您先阅读Layout Managers上Swing教程中的部分。上面提到了所有布局管理器的工作示例。
其他问题:
Swing教程都遵循上述标准,因此请下载演示代码以便从中学习。