樊聪

部分源码为加密模式,需要的同学请留言

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  1 import java.awt.Font;
  2 import java.awt.GridBagConstraints;
  3 import java.awt.GridBagLayout;
  4 import java.awt.Insets;
  5 
  6 import javax.swing.JButton;
  7 import javax.swing.JFrame;
  8 import javax.swing.JPanel;
  9 import javax.swing.UIManager;
 10 
 11 public class Test extends JFrame {
 12 
 13     private static final long serialVersionUID = -2397593626990759111L;
 14 
 15     private JPanel pane = null;
 16 
 17     private JButton b_1 = null, b_2 = null, b_3 = null, b_4 = null, b_5 = null;
 18 
 19     private int gridx, gridy, gridwidth, gridheight, anchor, fill, ipadx,
 20             ipady;
 21 
 22     private double weightx, weighty;
 23 
 24     private Insets insert = null;
 25 
 26     private GridBagLayout grigbag = null;
 27 
 28     private GridBagConstraints gridbagconstraints = null;
 29 
 30     public Test() {
 31         super("Test");
 32 
 33         // 设置按钮字体
 34         UIManager.put("Button.font", new Font("Dialog", Font.PLAIN, 12));
 35 
 36         pane = new JPanel();
 37 
 38         // 五个按钮,按钮名为X、Y坐标,横与列所占单元格数
 39         b_1 = new JButton("b_1");
 40         b_2 = new JButton("b_2");
 41         b_3 = new JButton("b_3");
 42         b_4 = new JButton("b_4");
 43         b_5 = new JButton("b_5");
 44 
 45         grigbag = new GridBagLayout();
 46         pane.setLayout(grigbag);
 47 
 48         gridx = 0; // X0
 49         gridy = 0; // Y0
 50         gridwidth = 1; // 横占一个单元格
 51         gridheight = 3; // 列占三个单元格
 52         weightx = 1.0; // 当窗口放大时,长度随之放大
 53         weighty = 1.0; // 当窗口放大时,高度随之放大
 54         anchor = GridBagConstraints.NORTH; // 当组件没有空间大时,使组件处在北部
 55         fill = GridBagConstraints.BOTH; // 当有剩余空间时,填充空间
 56         insert = new Insets(0, 0, 0, 10); // 组件彼此的间距
 57         ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间
 58         ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间
 59         gridbagconstraints = new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
 60                 weightx, weighty, anchor, fill, insert, ipadx, ipady);
 61         grigbag.setConstraints(b_1, gridbagconstraints);
 62         pane.add(b_1);
 63 
 64         /**
 65          * 下面每个单元格的设置中都有很多设置是前面已经设好的,不必要重新附值,这么写是为了更容易的看懂每个单元格中的设置。
 66          */
 67 
 68         gridx = 1; // X1
 69         gridy = 0; // Y0
 70         gridwidth = 1; // 横占一个单元格
 71         gridheight = 2; // 列占两个单元格
 72         weightx = 1.0; // 当窗口放大时,长度随之放大
 73         weighty = 1.0; // 当窗口放大时,高度随之放大
 74         anchor = GridBagConstraints.NORTH; // 当组件没有空间大时,使组件处在北部
 75         fill = GridBagConstraints.BOTH; // 当格子有剩余空间时,填充空间
 76         insert = new Insets(0, 0, 0, 10); // 组件彼此的间距
 77         ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间
 78         ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间
 79         gridbagconstraints = new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
 80                 weightx, weighty, anchor, fill, insert, ipadx, ipady);
 81         grigbag.setConstraints(b_2, gridbagconstraints);
 82         pane.add(b_2);
 83 
 84         // 下面是一个临时的填充面板,否则格子有可能会被挤掉
 85         gridx = 1; // X1
 86         gridy = 2; // Y2
 87         gridwidth = 1; // 横占一个单元格
 88         gridheight = 1; // 列占一个单元格
 89         weightx = 0.0; // 当窗口放大时,长度不变
 90         weighty = 0.0; // 当窗口放大时,高度不变
 91         anchor = GridBagConstraints.NORTH; // 当组件没有空间大时,使组件处在北部
 92         fill = GridBagConstraints.BOTH; // 当格子有剩余空间时,填充空间
 93         insert = new Insets(0, 0, 0, 0); // 组件彼此的间距
 94         ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间
 95         ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间
 96         gridbagconstraints = new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
 97                 weightx, weighty, anchor, fill, insert, ipadx, ipady);
 98         JPanel tempPane = new JPanel();
 99         grigbag.setConstraints(tempPane, gridbagconstraints);
100         pane.add(tempPane);
101 
102         // 又是一个临时的填充面板
103         gridx = 2; // X2
104         gridy = 0; // Y0
105         gridwidth = 1; // 横占一个单元格
106         gridheight = 1; // 列占一个单元格
107         weightx = 0.0; // 当窗口放大时,长度不变
108         weighty = 0.0; // 当窗口放大时,高度不变
109         anchor = GridBagConstraints.NORTH; // 当组件没有空间大时,使组件处在北部
110         fill = GridBagConstraints.BOTH; // 当格子有剩余空间时,填充空间
111         insert = new Insets(0, 0, 0, 0); // 组件彼此的间距
112         ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间
113         ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间
114         gridbagconstraints = new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
115                 weightx, weighty, anchor, fill, insert, ipadx, ipady);
116         tempPane = new JPanel();
117         grigbag.setConstraints(tempPane, gridbagconstraints);
118         pane.add(tempPane);
119 
120         gridx = 2; // X2
121         gridy = 1; // Y1
122         gridwidth = 1; // 长度为1
123         gridheight = 1; // 高度为1
124         weightx = 1.0; // 当窗口放大时,长度随之放大
125         weighty = 0.0; // 当窗口放大时,高度不变
126         anchor = GridBagConstraints.SOUTH; // 当组件没有空间大时,使组件处于底部
127         fill = GridBagConstraints.HORIZONTAL; // 当有剩余空间时,横向填充空间
128         insert = new Insets(0, 0, 0, 0); // 组件彼此的间距
129         ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间
130         ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间
131         gridbagconstraints = new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
132                 weightx, weighty, anchor, fill, insert, ipadx, ipady);
133         grigbag.setConstraints(b_3, gridbagconstraints);
134         pane.add(b_3);
135 
136         // 又是一个临时的填充面板
137         gridx = 3; // X3
138         gridy = 0; // Y0
139         gridwidth = 1; // 横占一个单元格
140         gridheight = 2; // 列占两个单元格
141         weightx = 0.0; // 当窗口放大时,长度不变
142         weighty = 0.0; // 当窗口放大时,高度不变
143         anchor = GridBagConstraints.NORTH; // 当组件没有空间大时,使组件处在北部
144         fill = GridBagConstraints.BOTH; // 当格子有剩余空间时,填充空间
145         insert = new Insets(0, 0, 0, 0); // 组件彼此的间距
146         ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间
147         ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间
148         gridbagconstraints = new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
149                 weightx, weighty, anchor, fill, insert, ipadx, ipady);
150         tempPane = new JPanel();
151         grigbag.setConstraints(tempPane, gridbagconstraints);
152         pane.add(tempPane);
153 
154         gridx = 3; // X3
155         gridy = 2; // Y2
156         gridwidth = 1; // 长度为1
157         gridheight = 2; // 高度为2
158         weightx = 0.0; // 当窗口放大时,长度没有变化
159         weighty = 1.0; // 当窗口放大时,高度随之放大
160         anchor = GridBagConstraints.NORTH; // 当组件没有空间大时,使组件处于顶部
161         fill = GridBagConstraints.VERTICAL; // 当有剩余空间时,纵向填充空间
162         insert = new Insets(0, 0, 0, 0); // 组件彼此的间距
163         ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间
164         ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间
165         gridbagconstraints = new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
166                 weightx, weighty, anchor, fill, insert, ipadx, ipady);
167         grigbag.setConstraints(b_4, gridbagconstraints);
168         pane.add(b_4);
169 
170         gridx = 0; // X0
171         gridy = 3; // Y3
172         gridwidth = 2; // 长度为2
173         gridheight = 1; // 高度为1
174         weightx = 1.0; // 当窗口放大时,长度随之放大
175         weighty = 0.0; // 当窗口放大时,高度没有变化
176         anchor = GridBagConstraints.SOUTH; // 当组件没有空间大时,使组件处于底部
177         fill = GridBagConstraints.HORIZONTAL; // 当有剩余空间时,横向填充空间
178         insert = new Insets(0, 0, 0, 0); // 组件彼此的间距
179         ipadx = 0; // 组件内部填充空间,即给组件的最小宽度添加多大的空间
180         ipady = 0; // 组件内部填充空间,即给组件的最小高度添加多大的空间
181         gridbagconstraints = new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
182                 weightx, weighty, anchor, fill, insert, ipadx, ipady);
183         grigbag.setConstraints(b_5, gridbagconstraints);
184         pane.add(b_5);
185 
186         this.getContentPane().add(pane);
187         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
188         this.setSize(450, 180);
189         this.setLocationRelativeTo(null);
190         this.setVisible(true);
191     }
192 
193     public static void main(String args[]) {
194         new Test();
195     }
196 
197 }
View Code

 

posted on 2015-11-15 16:17  樊聪  阅读(153)  评论(0)    收藏  举报