在Java学习的过程中,我们时常会因为控制台程序的枯燥而失去了学习Java的乐趣,那么今天我们就开始学习Java的Swing。也就是GUI(Graphical user interface),在应用到GUI时,你就可以体会到编程的乐趣。
下面我就以我编写的一个程序结果为例,向大家阐述一下,在Java中如何建立窗口以及容器中组件的布局。程序运行结果如下:
首先从图片本身开始分析:我们可以看到一个窗口,在窗口上面有这么五个按钮,然后五个按钮分部在这个窗体的边界。于是有了边界布局。从程序上面我们也是运用这样的逻辑实现的。创建窗口运用到java.awt.Frame类
代码如下:
//调用父类的一个构造方法,创建一个标题为“边界布局”的窗口
super("边界布局");
//设置窗口的大小,以像素为单位
this.setSize(200,300);
//设置窗口的起始位置(左上角坐标)
this.setLocation(100,100);
//设置窗口关闭时的默认操作
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
然后是创建按钮
//实例化面板对象
p = newJPanel();//创建一个边界布局管理器对象,并把布局设置到面板中
p.setLayout(newBorderLayout());
b1= new JButton("Button 东");
b2= new JButton("Button 西");
b3= new JButton("Button 南");
b4= new JButton("Button 北");
b5= new JButton("Button 中");
最后是将按钮加入到面板中,并设置布局方式
1 p.add(b1,BorderLayout.EAST);2 p.add(b2,BorderLayout.WEST);3 p.add(b3,BorderLayout.SOUTH);4 p.add(b4,BorderLayout.NORTH);5 p.add(b5,BorderLayout.CENTER);
其中包含的类是java.awt.BorderLayout;主要的代码就是这些。
完整的代码如下:
1 packagecom.example;2 importjava.awt.BorderLayout;3 import javax.swing.*;4
5
6 public class BorderLayoutDemo extendsJFrame{7 privateJPanel p;8 privateJButton b1,b2,b3,b4,b5;9 publicBorderLayoutDemo(){10 super("边界布局");11 p = newJPanel();12 //创建一个边界布局管理器对象,并把布局设置到面板中
13 p.setLayout(newBorderLayout());14 b1 = new JButton("Button 东");15 b2 = new JButton("Button 西");16 b3 = new JButton("Button 南");17 b4 = new JButton("Button 北");18 b5 = new JButton("Button 中");19
20 p.add(b1,BorderLayout.EAST);21 p.add(b2,BorderLayout.WEST);22 p.add(b3,BorderLayout.SOUTH);23 p.add(b4,BorderLayout.NORTH);24 p.add(b5,BorderLayout.CENTER);25
26 this.add(p);27 this.setSize(1000,1000);28 this.setLocation(100,100);29 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);30 }31 public static voidmain(String[]args){32 BorderLayoutDemo f = newBorderLayoutDemo();33 f.setVisible(true);34 }35 }