2015-10-26 56 views
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); 
    } 
} 
+0

你看着[miglayout(http://www.miglayout.com/)?它確實可以幫助簡化awt/swing組件的佈局。 –

+0

'GridBagLayout'實質上就像一個行和列表,其中'gridx/y'約束指定單元格。您爲單元中的組件定義約束。 「weightx/y」屬性爲單元格的單元格會影響列/行中的所有其他單元格,也就是說,如果使單個單元格填充可用寬度,則該列中的所有單元格也將相同寬度。這是一個高度靈活的'GridLayout'。不,你沒有獲得像素完美的控制,但是你可以做一些技巧爲單個單元中的組件提供緩衝 – MadProgrammer

回答

相關問題