本次的主题是有关Java界面类的初步使用:以QQ登录界面作为初实例
首先是对类与对象基础的复习:
类:抽象总结 class
对象:具体实例
公开类和文件名一致;
对象可定义方法和状态;
所有方法类型都要在类中进行定义;
下面就开始做我们 可(ju) 爱(chou)的QQ登录界面
一个QQ登录界面需要有点啥?
首先是一个帅气的背景图片
呃……好像也不是很帅气,嘛将就将就
还有输入框和密码框
下面有两个复选框,带注释的那种
然后是带链接的文字,但是链接还不会,就要文字吧
(实在是啥也不会就各种简化哈哈哈哈哈哈)
创建一个界面需要的相关类:
awt:java.awt包下,java早期采用的界面开发包,现在布局、尺寸、监听器等等仍然保留。
swing:javax.swing包下,组件类的类名,以J开头。
创建一个界面的理论基础
首先需要每个内容作为组件来像积木一样搭建起来;
组件按照功能分成元素组件和容器组件;
其中容器组件装纳其它组件,特殊的有一种顶级容器组件:
一个顶级容器组件就是一个界面,所有其他的组件都必须添加在顶级容器组件上才能显示,是界面形成的基础。
其次便是布局;
布局是摆放组件的规则,本次我们使用的是流式布局(从左到右的布局)
(△流式布局的缺点:从左到右,没办法进行主动的换行,只能靠自己的宽度来挤出布局)
创建一个界面内容(可在API文档中查找到)
组件:
顶级容器组件:JFrame
文本输入框:JTextField
密码输入框:JPasswordField
按钮:JButton
复选:JCheckbox
显示(文字,图片)标签:JLabel
布局:
流式布局:java.awt.FlowLayout
(其中维度(尺寸):java.awt.Dimension)
图片:javax.swing.ImageIcon
那么我们的创建步骤:
第一步:新建一个界面类,定义显示界面的方法。
第二步:新建一个顶级容器组件(窗体),设置窗体的属性(尺寸,布局方式等)。
第三步:创建各个组件对象,设置属性,并且添加到窗体上。
第四步:设置窗体可见。
最后一步:主方法中,创建界面类的对象,调用显示界面的方法
然后是我们的代码内容
package com.day0424.ui;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.Dimension;
import javax.swing.JTextField;
import javax.swing.ImageIcon;
import javax.swing.JCheckBox;
public class login {
//定义显示界面的方法
public void showUI(){
//创建窗体对象
JFrame win = new JFrame();
//设置窗体大小
Dimension size1 = new Dimension(600,800);
win.setSize(size1);
//设置窗体位置(本句话为居中)
win.setLocationRelativeTo(null);
//****设置窗体关闭条件(退出时就关闭)
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置布局(流式布局)
FlowLayout flow = new FlowLayout();
win.setLayout(flow);
//设置背景图片(文本和图片都不是组件,需要用JLabel变成标签然后加入)
ImageIcon back = new ImageIcon("C:\\Users\\姚文进\\Desktop\\background.png");
JLabel image = new JLabel(back);
//添加到窗体
win.add(image);
//设置输入框
JTextField input = new JTextField();
//设置尺寸
Dimension size2 = new Dimension(500,30);
input.setPreferredSize(size2);
//添加输入框到窗体
win.add(input);
//设置文本
JLabel register = new JLabel("注册账号");
win.add(register);
//设置密码框
JPasswordField password = new JPasswordField();
//设置尺寸
Dimension size3 = new Dimension(500,30);
password.setPreferredSize(size3);
//添加密码框到窗体
win.add(password);
//设置文本
JLabel forget = new JLabel("忘记密码");
win.add(forget);
//设置复选框
JCheckBox alter = new JCheckBox("自动登录");
win.add(alter);
//设置复选框
JCheckBox remember = new JCheckBox("忘记密码");
win.add(remember);
//设置按钮
JButton loginButton = new JButton("登录");
Dimension size4 = new Dimension(500,80);
loginButton.setPreferredSize(size4);
win.add(loginButton);
//*****设置窗体可见
win.setVisible(true);
}
public static void main(String[] args){
//创建登录对象
login ui = new login();
//对象的显示方法
ui.showUI();
}
}