我正在学习 GridBagLayout
并做了非常简单的布局,有两个非常小的困惑
1-Size of Buttons
我使用 New.setPreferredSize(new Dimension(70,23));
的是使所有按钮大小相同的标准方法吗
2-元件的摆放不好看
现在看到还有更多padding on all sides of components
,那么如何以正确的方式放置它from top left corner
,我应该减小大小JFrame?
还是同时使用 frame.pack();
这两种工作但不知道什么是标准做法(我已经尝试过pagestart
等),
这就是我的代码的样子
frame= new JFrame("Hello ");
frame.setSize(300, 150);
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(this);
frame.setResizable(false);
frame.setLocation(0, 0);
p1= new JPanel (new GridBagLayout());
gbc = new GridBagConstraints();
lblname= new JLabel("Name");
gbc.gridx=0;
gbc.gridy=0;
p1.add(lblname, gbc);
textname = new JTextField(11);
gbc.gridx=1;
gbc.gridy=0 ;
p1.add(textname, gbc);
New= new JButton("New");
gbc.gridx=2;
gbc.gridy=0;
New.setPreferredSize(new Dimension(70,23));
p1.add(New, gbc);
lblEmail = new JLabel("Email ");
gbc.gridx=0;
gbc.gridy=1;
p1.add(lblEmail , gbc);
TextEmail = new JTextField(11);
gbc.gridx=1;
gbc.gridy=1;
p1.add(TextEmail,gbc);
Edit = new JButton("Edit") ;
gbc.gridx= 2 ;
gbc.gridy=1;
Edit.setPreferredSize(new Dimension(70,23));
p1.add(Edit , gbc);
lblgender= new JLabel("Gender");
gbc.gridx=0;
gbc.gridy=2;
p1.add(lblgender, gbc);
TextGender= new JTextField(11);
gbc.gridx=1;
gbc.gridy=2;
p1.add(TextGender, gbc);
Gender= new JButton("Gender");
gbc.gridx=2;
gbc.gridy=2;
Gender.setPreferredSize(new Dimension(70,23));
p1.add(Gender, gbc);
pre= new JButton("<<");
gbc.gridx=0;
gbc.gridy=3;
p1.add(pre, gbc);
count = new JTextField(5);
gbc.gridx=1;
gbc.gridy=3;
p1.add(count, gbc);
next= new JButton(">>");
gbc.gridx=2;
gbc.gridy=3;
next.setPreferredSize(new Dimension(70,23));
p1.add(next, gbc);
p1.setVisible(true);
frame.add(p1);
frame.setVisible(true);