Java Swing初步(一)
我个人觉得写程序要有一个好的用户体验,首先重要的一点就是要有一个酷炫的界面,这个才能让用户一眼就用想要使用的冲动,当然还有就是强大的功能。我现在还是刚开始学界面这一块,所以我就谈谈我的一些学习的感受吧。
1、首先在Java中的图形界面的分类:(1)按包名分有awt和swing两种分别在java.awt和javax.swing包下;(2)按用途划分也是两种,一种容器组件类(可以装载其它元素或者容器),还有就是元素组件类(用于显示文本或者图片等元素)
2、几种常用的容器组件以及元素组件
(1)容器组件(javax.swing包下):
①JFrame(窗体容器组件类,*容器)
②JPanel(面板容器组件类)
(2)元素组件(javax.swing包下):
①JTextField 文本输入框元素组件类 用于接收用户输入的信息,直接显示在输入框中
②JLabel 标签元素组件类 用于显示文本图片等元素
③JPasswordField 密码输入框元素组件 用于接收用户输入的信息,并以某一种符号代替显示
④JCheckBox 复选框元素组件类 供用户选择,也可以显示文本图片等
⑤JComboBox 下拉列表框 供用户选择,也可以供用户输入信息
(3)常用的布局类(java.awt包下):
①FlowLayout 流式布局(有点类似于Word文档中输入文本的方式,其中的元素组件相当于Word文档中的文字)
②BorderLayout 边框布局(将容器分为五个部分,分别命名为,东,西,南,北,中)
③GridLayout 网格布局(布局方式类似用一张表格)
3、由于刚开始学界面,所以就简单做了一个登录的界面,下面是我的代码
package com.why.ui; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; public class Login { private JLabel jlName = null;//显示账号两个字 private JLabel jlPwd = null;//显示密码两个字 private JComboBox<String> username = null;//供用户输入账号的输入框,这里我用下拉列表框完全仿造qq登陆界面 private JPasswordField password = null;//密码输入框 private JCheckBox rememberPwd = null;//是否记住密码的复选框 private JCheckBox autoLogin = null;//是否自动登陆的复选框 private JButton loginButton = null;//登陆按钮 public static void main(String[] args) { // TODO Auto-generated method stub Login login = new Login(); login.init(); } /** * 初始化界面的函数 */ public void init() { //生成一个窗体容器,用于添加显示元素 JFrame jf = new JFrame(); //设置窗体大小 jf.setSize(260, 180); //设置窗体是否可以改变大小 jf.setResizable(false); //设置点击关闭按钮的动作 jf.setDefaultCloseOperation(3); //设置窗体的标题 jf.setTitle("简单登陆界面"); //设置窗体显示位置,这里居中显示 jf.setLocationRelativeTo(null); //实例化一个布局类 FlowLayout fl = new FlowLayout(); //设置布局中水平和竖直方向上相邻组件的间距 fl.setHgap(15); fl.setVgap(10); //给窗体类设置布局方式 jf.setLayout(fl); jlName = new JLabel("账号"); jf.add(jlName); //下拉列表设置文本 String[] name = new String[] { "1343232489", "3342829389", "4383928493", "1378684171" }; //实例化一个下拉列表 username = new JComboBox<String>(name); //给下拉列表设置大小 username.setPreferredSize(new Dimension(168, 23)); //设置下拉列表为可编辑 username.setEditable(true); jf.add(username); jlPwd = new JLabel("密码"); jf.add(jlPwd); //实例化一个密码输入框 password = new JPasswordField(15); jf.add(password); rememberPwd = new JCheckBox("记住密码"); jf.add(rememberPwd); autoLogin = new JCheckBox("自动登陆"); jf.add(autoLogin); loginButton = new JButton("登陆"); jf.add(loginButton); //设置窗体可见,这一步必须在所有元素添加完成才能设置 jf.setVisible(true); } }
这个是效果图: