Java学习日记:UI篇(1)
目标:实现一个界面,并添加一些按钮(不可操作)。
目标是要一步步实现的,所以我们先来第一步,写出一个空白界面,这样我们才能向它加入按钮。
package uL;
import javax.swing.JFrame;//窗体
public class draw{
//主函数
public static void main(String[] args){
draw LUI= new draw();
LUI.ShowMyUI();
}
public void ShowMyUI() {
//初始化生成界面
JFrame LoginJF = new JFrame();
LoginJF.setTitle("登录界面");
LoginJF.setSize(600,450);//界面大小
LoginJF.setLocationRelativeTo(null);//界面默认居中
LoginJF.setDefaultCloseOperation(3);//使界面上的关闭键有效
LoginJF.setResizable(false);//窗体大小默认不可变
LoginJF.setVisible(true);//可视化,此处很重要,这是为了让我们的页面可见
}
}
界面有了,接下来便是向界面上加入我们需要的东西。我们需要给界面添加一个布局器,在这里我们使用:流式布局(FlowLayout 默认居中,而后按照添加顺序依次从左至右从上至下摆放)。
public class UI界面{
//定义主方法
public static void main(String[] args) {
UI界面 name1 =new UI界面();
name1.方法名();
}
//定义界面函数
public void 方法名() {
/**
* 创建组件的对象
*/
//设置布局
//设置组件:文字、图片、标签、按钮、输入框等
/**
* 设置组件的属性:大小等
*/
//将组件添加至页面
// 组件的添加必须在可视化之前,否则组件将不可见。
loginFrame.setVisible(true);//可视化,窗体设置没有这行代码就不会出现在屏幕上
}
}
以上为实现一个简单界面的基本思路,下面给出实例:仿QQ的登录界面。先给出实例图片:
源码来了:
package uL;
//导入所需要使用的类
import java.awt.Dimension;
import java.awt.FlowLayout;//流体布局
import javax.swing.ImageIcon;//图片标签
import javax.swing.JButton;//按钮
import javax.swing.JCheckBox;//复选框
import javax.swing.JFrame;//窗体
import javax.swing.JLabel;//标签
import javax.swing.JPasswordField;//密码框
import javax.swing.JTextField;//普通文本框
//定义类
public class LoginUI{
//主函数
public static void main(String[] args){
LoginUI LUI= new LoginUI();
LUI.ShowMyUI();
}
public void ShowMyUI() {
//初始化生成界面
JFrame LoginJF = new JFrame();
LoginJF.setTitle("登录界面");
LoginJF.setSize(600,450);
LoginJF.setLocationRelativeTo(null);//设置界面默认居中
LoginJF.setDefaultCloseOperation(3);//3代表EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。
LoginJF.setResizable(false);//窗体大小默认不可变
//设置布局:流式布局(默认居中,而后按照添加顺序依次从左至右从上至下摆放)
FlowLayout fl =new FlowLayout();
LoginJF.setLayout(fl);
//文字 -- 图片 —— 标签
ImageIcon imgIcon = new ImageIcon("E:\\study\\JAVA\\May-23-study\\src\\uL\\image\\UI-1.png");//此处我给出一张绝对路径的图片,可在文末下载
JLabel imgJL =new JLabel(imgIcon);
JLabel zhanghaoJL =new JLabel("账号:");
JLabel pwdJL = new JLabel("密码:");
JLabel blankJL1 =new JLabel();
JLabel blankJL2 =new JLabel();
JLabel blankJL3 =new JLabel();
JLabel blankJL4 =new JLabel();
JLabel blankJL5 =new JLabel();
JLabel blankJL6 =new JLabel();
JLabel blankJL7 =new JLabel();
JLabel blankJL8 =new JLabel();
JTextField zhanghaoField = new JTextField(); // 文本框
JPasswordField pwdField =new JPasswordField();//密码框
JButton loginBtn = new JButton("登录");
JButton regitBtn = new JButton("注册");
JButton fogetBtn = new JButton("忘记密码");
JCheckBox reBox = new JCheckBox("自动登录");
JCheckBox remBox = new JCheckBox("记住密码");
//设置组件尺寸大小
Dimension dim = new Dimension(300,30);
Dimension dim1 = new Dimension(150,30);
Dimension dim3 = new Dimension(70,30);//占位空白框尺寸,账号提示前
Dimension dim2 = new Dimension(140,30);//占位空白框尺寸,账号输入框后1
Dimension dim4 = new Dimension(76,30);//占位空白框尺寸,账号输入框后2
Dimension dim5 = new Dimension(100,30);//占位空白框尺寸,复选框前
Dimension dim6 = new Dimension(60,30);//占位空白框尺寸,复选框后
Dimension dim7 = new Dimension(40,30);//占位空白框尺寸,登录后
Dimension dim8 = new Dimension(80,30);//占位空白框尺寸,登录前
Dimension dimlogin = new Dimension(250,30);//占位空白框尺寸,密码输入框后
zhanghaoField.setPreferredSize(dim);//设置组件大小
pwdField.setPreferredSize(dim);
blankJL1.setPreferredSize(dim1);
blankJL2.setPreferredSize(dim2);
blankJL3.setPreferredSize(dim3);
blankJL4.setPreferredSize(dim4);
blankJL5.setPreferredSize(dim5);
blankJL6.setPreferredSize(dim6);
blankJL7.setPreferredSize(dim7);
blankJL8.setPreferredSize(dim8);
loginBtn.setPreferredSize(dimlogin);
LoginJF.add(imgJL);
LoginJF.add(blankJL3);
LoginJF.add(zhanghaoJL);
LoginJF.add(zhanghaoField);
LoginJF.add(blankJL2);
LoginJF.add(blankJL4);
LoginJF.add(pwdJL);
LoginJF.add(pwdField);
LoginJF.add(blankJL1);
LoginJF.add(blankJL5);
LoginJF.add(remBox);
LoginJF.add(reBox);
LoginJF.add(fogetBtn);
LoginJF.add(blankJL6);
LoginJF.add(blankJL8);
LoginJF.add(loginBtn);
LoginJF.add(blankJL7);
LoginJF.setVisible(true);//可视化,此处很重要
}
}
接下来给出一些界面编程中常用的组件。
JFrame Swing的框架类
JButton Swing按钮,按钮中可以带一些图片或者文字
JCheckbox Swing中的复选框组件
JLabel Swing中的标签组件
JTextField Swing中的文本框
JRadioButton Swing中的单选按钮
JPasswordField Swing中的密码框
JDialog Swing中的对话框
JComboBox() Swing中的下拉列表框,可以在下拉显示区域显示多个选项
JList Swing中显示对象列表并且允许用户选择一个或多个项的组件。
JTextArea Swing中的文本区域
JOptionPane Swing中的一些对话框
以上为一个初始界面的设置方法,下一次将为相应的组件添加监听器并实现一些简单功能。
实例中使用的图片(来源于截图),可根据自己的需求为程序插入美观的图片。