2015-10-26 21 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

回答

相关问题