shenxiuwen 2019-11-30
一、java的图形界面
1.swing javax.swing
jdk1.4时推出的图形界面,跨平台性好
二、常用的组件
1.容器组件
JFrame 窗体类 最顶级的容器(默认布局为边框布局,不能自己互相添加)
2.元素组件
JLabel 标签类
JTextField 文本输入框类(可以设置框内字符、输入框长度)
JPasswordField 密码输入框类(框内字符会被特定字符代替)
JCheckBox 复选框类
JButton 按钮类
容器和组件都是swing包下的类。javax.swing.JFrame
三、常用的布局
1.布局类只能用在容器中。设置布局时需用setLayout()
FlowLayout 流式布局(如同文本文档一样一行一行排列,排列满换行,默认方向为从左向右,可以设置对齐方向)
四、简单登录界面的实现
1.新建一个xxx类(Login),在类中定义主函数。
2.在类中定义一个初始化界面的方法(initUI)
3.在初始化界面的方法中,实例化一个顶级容器(JFrame)类的对象。
4.设置JFrame对象的属性值(标题,大小,显示位置,关闭退出程序,禁止调整大小,可见,该步完成对一个窗体的创建)
5.实例化元素组件对象,将对象添加到窗体上
6.在主函数中实例化Login类的对象,用对象名调用初始化界面的方法。
注:setDefaultCloseOperation()括号中可选数字,3是关闭时退出程序。0是不关闭。1是隐藏,2是关闭时程序继续工作。
setVisible(true)必须放在最后才能显示所有组件。true为可见。
setSize()大小为像素点的大小。默认起点为左上角。
五、代码
1.简单的登录界面
可以用流式布局或者边框布局。
Java代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | //定义一个登录界面 public class showFrameqq { // 入口主函数 public static void main(String[] args) { // 实例化showFrameqq类的对象 showFrameqq showqq = new showFrameqq(); //调用qq界面的方法 showqq.initGUI(); } //定义一个qq界面的方法 public void initGUI(){ //实例化一个JFrame类的对象 javax.swing.JFrame jf = new javax.swing.JFrame(); //设置窗体的标题属性 jf.setTitle( "QQ登录界面" ); //设置窗体的大小属性 jf.setSize( 300 , 200 ); //设置窗体的位置属性 jf.setLocation( 450 , 200 ); //设置窗体关闭时退出程序 jf.setDefaultCloseOperation( 3 ); //设置禁止调整窗体的大小 jf.setResizable( false ); //实例化一个布局类的对象 java.awt.FlowLayout fl = new java.awt.FlowLayout(); //设置窗体的布局方式为流式布局 jf.setLayout(fl); //实例化一个JLabel标签类的对象 javax.swing.JLabel jlaName = new javax.swing.JLabel( " " ); //将jlaName对象添加到容器JFrame对象上 jf.add(jlaName); //实例化一个JTextField对象 javax.swing.JTextField jteName = new javax.swing.JTextField( "账号" , 20 ); //将jteName对象添加到容器JFrame对象上 jf.add(jteName); //实例化一个JLabel对象 javax.swing.JLabel jlaName2 = new javax.swing.JLabel( "注册账号" ); //将jlaName2对象添加到容器JFrame对象上 jf.add(jlaName2); //实例化一个JPasswordField对象 javax.swing.JPasswordField jpaName = new javax.swing.JPasswordField( "请输入密码" , 20 ); //将jpaName对象添加到容器JFrame对象上 jf.add(jpaName); //实例化一个JLabel对象 javax.swing.JLabel jlaName3 = new javax.swing.JLabel( "找回密码" ); //将jlaName3对象添加到容器JFrame对象上 jf.add(jlaName3); //实例化一个JCheckBox对象 javax.swing.JCheckBox jchName = new javax.swing.JCheckBox( "记住密码" ); //将jchName3对象添加到容器JFrame对象上 jf.add(jchName); //实例化一个JCheckBox对象 javax.swing.JCheckBox jchName2 = new javax.swing.JCheckBox( "自动登录" ); //将jchName3对象添加到容器JFrame对象上 jf.add(jchName2); //实例化一个JCheckBox对象 javax.swing.JButton jbuName = new javax.swing.JButton( " 登 录 " ); //将jButton对象添加到容器JFrame对象上 jf.add(jbuName); jf.setVisible( true ); } } package cn.wz.study0718; //定义一个登录界面 public class showFrameqq { // 入口主函数 public static void main(String[] args) { // 实例化showFrameqq类的对象 showFrameqq showqq = new showFrameqq(); //调用qq界面的方法 showqq.initGUI(); } //定义一个qq界面的方法 public void initGUI(){ //实例化一个JFrame类的对象 javax.swing.JFrame jf = new javax.swing.JFrame(); //设置窗体的标题属性 jf.setTitle( "QQ登录界面" ); //设置窗体的大小属性 jf.setSize( 300 , 200 ); //设置窗体的位置属性 jf.setLocation( 450 , 200 ); //设置窗体关闭时退出程序 jf.setDefaultCloseOperation( 3 ); //设置禁止调整窗体的大小 jf.setResizable( false ); //实例化一个布局类的对象 java.awt.FlowLayout fl = new java.awt.FlowLayout(); //设置窗体的布局方式为流式布局 jf.setLayout(fl); //实例化一个JLabel标签类的对象 javax.swing.JLabel jlaName = new javax.swing.JLabel( " " ); //将jlaName对象添加到容器JFrame对象上 jf.add(jlaName); //实例化一个JTextField对象 javax.swing.JTextField jteName = new javax.swing.JTextField( "账号" , 20 ); //将jteName对象添加到容器JFrame对象上 jf.add(jteName); //实例化一个JLabel对象 javax.swing.JLabel jlaName2 = new javax.swing.JLabel( "注册账号" ); //将jlaName2对象添加到容器JFrame对象上 jf.add(jlaName2); //实例化一个JPasswordField对象 javax.swing.JPasswordField jpaName = new javax.swing.JPasswordField( "请输入密码" , 20 ); //将jpaName对象添加到容器JFrame对象上 jf.add(jpaName); //实例化一个JLabel对象 javax.swing.JLabel jlaName3 = new javax.swing.JLabel( "找回密码" ); //将jlaName3对象添加到容器JFrame对象上 jf.add(jlaName3); //实例化一个JCheckBox对象 javax.swing.JCheckBox jchName = new javax.swing.JCheckBox( "记住密码" ); //将jchName3对象添加到容器JFrame对象上 jf.add(jchName); //实例化一个JCheckBox对象 javax.swing.JCheckBox jchName2 = new javax.swing.JCheckBox( "自动登录" ); //将jchName3对象添加到容器JFrame对象上 jf.add(jchName2); //实例化一个JCheckBox对象 javax.swing.JButton jbuName = new javax.swing.JButton( " 登 录 " ); //将jButton对象添加到容器JFrame对象上 jf.add(jbuName); jf.setVisible( true ); } } |