Java中的Swing集由所有Java图形用户界面(GUI)组件所构成,可运行在任意支持java虚拟机的本地平台上,由于这些组件全都是用java语言编写的,因此它们可以提供比本地平台GUI组件更多的功能。
一个java GUI通常由顶层容器、中间容器以及多个原子组件组成,每个原子组件或容器都可以触发相应事件的产生,容器是一类能够在其中容纳其他组件的特殊组件。Swing的GUI组件类是按照类属层次以及树状结构进行组织的。树状结构是一个或者多个节点有限集合。
在这个树的最顶层,即是树的根部,使一个最基本的容器类。被称为顶层容器;swing的顶层容器提供了三个通用的顶层容器类JFrame,JDialog和JApplet。JFrame提供了基于窗体的应用程序,也就是下面小案例将会使用的,JDialog提供对话形式的界面,JApplet提供java小应用程序的界面形式。
其次就是中间容器,用于容纳其他的组件。通常窗格本身在显示界面是看不到的,面板类Panel是一个中间容器,它的唯一作用就是使组件更容易定位。顶层容器通过getContentPane()方法内部的一个内容窗格。至于swing集合有哪些类和方法就不讲解了。下面是用java做的一个文本框的窗格。
package com.hh;
import java.awt.*;
import javax.swing.*;
public class Demo{
public static void main(String[] args) {
Test test1 = new Test();
}
}
class Test extends JFrame{
//设置按钮 面板组件
JButton jb1, jb2,jb3;
JPanel jp1,jp2,jp3,jp4;
JLabel labe1,labe2,labe3,labe4;
JCheckBox jcb1,jcb2,jcb3;
JRadioButton jrb1,jrb2,jrb3;
JTextField text1;
ButtonGroup bg;
public Test() {
labe1 = new JLabel("爱好");
labe2 = new JLabel("性别");
labe3 = new JLabel("年龄");
jcb1 = new JCheckBox("代码");
jcb2 = new JCheckBox("篮球");
jcb3 = new JCheckBox("设计");
jrb1 = new JRadioButton("男");
jrb2 = new JRadioButton("女");
bg = new ButtonGroup();
bg.add(jrb1);
bg.add(jrb2);
text1 = new JTextField();
text1.setEditable(true); //允许可以编辑
text1.setColumns(11); //设置长度
jb1 = new JButton("注册");
jb2 = new JButton("登录");
//布局
this.setLayout(new GridLayout(4,1)); //行和列
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel();
jp1.add(labe1);
jp1.add(jcb1);
jp1.add(jcb2);
jp1.add(jcb3);
jp2.add(labe2);
jp2.add(jrb1);
jp2.add(jrb2);
jp3.add(labe3);
jp3.add(text1);
jp4.add(jb1);
jp4.add(jb2);
this.setSize(600,200);
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.add(jp4);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口程序也关闭
this.setVisible(true); //显示组件
}
}
这里就不详讲了,因为没有什么技术含量,做为刚对java的swing有了一个新的了解,我也不是很深入的了解。最后代码运行结果:
我想swing的集合还有很多要补充的,这里只是一个小小的组件界面,我还会继续深入的了解使用swing集合,并用他做个小型项目出来,就这样吧,内心表示对技术的期待并实现。