0
我很难理解GridBagConstraints是如何工作的。是否所有事物都处于“列和行”状态,或者是否有可能使用精确的像素规格(x:10 y:20 - >在角落中)。基本上我只是想知道这是如何工作的,如果我谈论的是正确的。谢谢。Java:GridBagLayout和GridBagConstraints
一些代码:/:(错误代码)
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.*;
public class Main{
public static void main(String[] args){
//Declaring JFrame, JPanel, JButton
JFrame frame = new JFrame();
JPanel panel = new JPanel();
GridBagConstraints gbc = new GridBagConstraints();
JButton button = new JButton("Click me");
//JFrame, frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
frame.setResizable(true);
frame.setLocationRelativeTo(null);
//JPanel, panel
panel.setLayout(new GridBagLayout());
frame.add(panel);
//JButton, button
gbc.gridx = 1;
gbc.gridy = 0;
gbc.insets = new Insets(1, 1, 1, 1);
panel.add(button, gbc);
frame.setVisible(true);
}
}
你看着[miglayout(http://www.miglayout.com/)?它确实可以帮助简化awt/swing组件的布局。 –
'GridBagLayout'实质上就像一个行和列表,其中'gridx/y'约束指定单元格。您为单元中的组件定义约束。 “weightx/y”属性为单元格的单元格会影响列/行中的所有其他单元格,也就是说,如果使单个单元格填充可用宽度,则该列中的所有单元格也将相同宽度。这是一个高度灵活的'GridLayout'。不,你没有获得像素完美的控制,但是你可以做一些技巧为单个单元中的组件提供缓冲 – MadProgrammer