当前位置:编程学习 > JAVA >>

java开发之图形界面GUI初步-Swing几种常用组件及其应用

package test;
 
import java.awt.*;
import java.awt.event.KeyEvent;
 
import javax.swing.*;
 
/*
 * 作者:钟志钢
 * 功能:图形界面GUI,Swing
 * 日期:2013-2-2
 * 1. awt, swt,swing,jFace之间关联
 * awt,sun公司提供的GUI开发工具包AWT(Abstract Window Toolkit),包括一些抽象窗口工具
 * swing,sun公司的又一个GUI框架,解决了awt存在的lcd(本地化)问题
 * awt,IBM创建的一个新的GUI库,认为Swing很消耗内存
 * JFace,IBM提供的更强大的GUI工具
 * 2, 布局管理器:
 * 边界布局(BorderLayout),
 * 流式布局(FlowLayout,从左到右,自动换行)
 * 网格布局(GridLayout)
 * 
 * 3, 界面开发的一般步骤:
 * 继承JFrame
 * 定义组件(大类)
 * 创建组件(构造函数)
 * 添加组件(加入到JFrame)
 * 对窗体进行设置
 * 显示窗体
 * 4, 面板组件,JPael,多布局管理器,非顶层容器,默认为流式布局
 */
public class 图形界面GUI extends JFrame{//在类里继承JFrame
//JButton jb ;//在此定义组件
JButton jb1,jb2,jb3,jb4,jb5,jb6;//按钮
JPanel jp1,jp2,jp3,jp4,jp5;//面板
JLabel jl1,jl2,jl3,jl4,jl5;//标签
JTextField jtf1,jtf2;//可编辑文本框
JPasswordField jpf1;//密码框
JCheckBox jcb1,jcb2,jcb3 ;//复选框
JRadioButton jrb1,jrb2 ;//单选框,需要先放入到ButtonGroup中,否则不能实现单选
ButtonGroup bg ;
JComboBox jcb ;//下拉框
JList jl ;//列表框组件
JScrollPane jsp ;//滚动条,通常与JList结合使用
JSplitPane jsp1 ;//拆分窗口,容器类组件
JTextArea jta ; //多行文本框
JTabbedPane jtp ;//选项卡窗格
JMenuBar jmb ;//菜单条组件:树干
JMenu jm1,jm2,jm3,jm4,jm5, jm6 ;//菜单条组件:树枝,下面可再有树枝...直到树叶 为止
JMenuItem jmi1,jmi2,jmi3,jmi4,jmi5,jmi6,jmi7, jmi8,jmi9 ;//菜单项组件:树叶
JToolBar jtb ;//容器类组件,又叫功能组件
int size = 9;
JButton [] jbs = new JButton[size];
public static void main(String args[]){
图形界面GUI gui = new 图形界面GUI();
}
public 图形界面GUI(){
//JFrame jf = new JFrame();//窗体,继承之后就不用实例化了
// this.setTitle("hi, JFrame");//标题,继承之后就用this代替jf;
// this.setSize(400, 400);//大小(像素)
// this.setLocation(100,200);//设置窗体的位置,x = 100, y = 200;
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置当窗体关闭时,退出jvm(虚拟机);
// this.setVisible(true);//显示,默认为false
 
//边界布局,BorderLayout
// jb1 = new JButton("中");//实例化按钮并设置文字
// jb2 = new JButton("北");//实例化按钮并设置文字
// jb3 = new JButton("东");//实例化按钮并设置文字
// jb4 = new JButton("南");//实例化按钮并设置文字
// jb5 = new JButton("西");//实例化按钮并设置文字
// this.add(jb1,BorderLayout.CENTER);//添加组件
// this.add(jb2,BorderLayout.NORTH);
// this.add(jb3,BorderLayout.EAST);
// this.add(jb4,BorderLayout.SOUTH);
// this.add(jb5,BorderLayout.WEST);//当缺少一个方向时,中间就会马上占有其"地盘"
// this.setTitle("我是边界布局");
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置当窗体关闭时,退出jvm(虚拟机);
// this.setSize(200, 200);//大小(像素)
// this.setVisible(true);//显示,默认为false
 
//流式布局,FlowLayout
// jb1 = new JButton("关雨");//实例化按钮并设置文字
// jb2 = new JButton("张飞");
// jb3 = new JButton("赵云");
// jb4 = new JButton("马超");
// jb5 = new JButton("刘备");
// jb6 = new JButton("我地");
// this.add(jb1);
// this.add(jb2);
// this.add(jb3);
// this.add(jb4);
// this.add(jb5);
// this.add(jb6);
// //设置布局方式,并设置对齐方式,默认为居中
// this.setLayout(new FlowLayout(FlowLayout.LEFT));
// this.setTitle("我是流式布局");
// this.setResizable(false);//设置用户不能随意修改大小
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置当窗体关闭时,退出jvm(虚拟机);
// this.setSize(300, 400);//大小(像素)
// this.setLocation(200,200);//设置窗体的位置,x = 200, y = 200;
// this.setVisible(true);//显示,默认为false
 
//网格布局GridLayout
// for(int i = 0; i < size; i ++){
// System.out.println("aa");
// jbs[i] = new JButton(String.valueOf(i+1));
// this.add(jbs[i]);
// }
// //设置网格布局,参数分别表示:3行,3列,水平间距,垂直间距
// this.setLayout(new GridLayout(3, 3, 5, 5));
// this.setTitle("我是网格布局");
// this.setResizable(false);//设置用户不能随意修改大小
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置当窗体关闭时,退出jvm(虚拟机);
// this.setSize(300, 400);//大小(像素)
// this.setLocation(200,200);//设置窗体的位置,x = 200, y = 200;
// this.setVisible(true);//显示,默认为false
 
//面板管理器,JPanel
// jp1 = new JPanel();//默认为流布局
// jp2 = new JPanel();
// jb1 = new JButton("西瓜");
// jb2 = new JButton("苹果");
// jb3 = new JButton("香蕉");
// jb4 = new JButton("桔子");
// jb5 = new JButton("木瓜");
// jb6 = new JButton("荔枝");
// //添加到JPanel
// jp1.add(jb1);
// jp1.add(jb2);
// jp2.add(jb3);
// jp2.add(jb4);
// jp2.add(jb5);
// //加入到JFame
// this.add(jp1, BorderLayout.NORTH);
// this.add(jp2, BorderLayout.SOUTH);
// this.add(jb6, BorderLayout.CENTER);
// this.setTitle("我是面板布局");
// this.setResizable(false);//设置用户不能随意修改大小
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置当窗体关闭时,退出jvm(虚拟机);
// this.setSize(300, 200);//大小(像素)
// this.setLocation(200,200);//设置窗体的位置,x = 200, y = 200;
// this.setVisible(true);//显示,默认为false
 
//几个常用组件的综合应用:登录系统-可编辑文本框,标签,密码框
// jb1 = new JButton("确定");
// jb2 = new JButton("取消");
// jl1 = new JLabel("用户名");
// jl2 = new JLabel("密     码");
// jpf1 = new JPasswordField(10);//实例化并设置大小
// jtf1 = new JTextField(10);
// //定义面板
// jp1 = new JPanel();
// jp2 = new JPanel();
// jp3 = new JPanel();
// //组件加入面板
// jp1.add(jl1);
// jp1.add(jtf1);
// jp2.add(jl2);
// jp2.add(jpf1); 
// jp3.add(jb1);
// jp3.add(jb2);
// this.add(jp1);
// this.add(jp2);
// this.add(jp3);
// //设置布局方式
// this.setLayout(new GridLayout(3,1,1,1));
// this.setTitle("请登录");
// this.setResizable(false);//设置用户不能随意修改大小
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置当窗体关闭时,退
补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,