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