当我开始学习图形用户界面程序设计的时候,登录界面是我实现的第一个小程序,我来分享一下我做的仿QQ简易版登陆界面。
上图
具体实现其实很简单, 我会从图形组件,实现思路,代码分析以及验证账号密码,界面跳转来说。
一,图形组件
在实现登录界面时,会用到两种图形界面类
1.AWT组件
抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统,图形和用户界面器件工具包。AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。(来自百度百科)
常用组件:按钮(Button)
复选框(Checkbox)
文本框(TextField)
颜色(Color)
等等
布局管理器:流布局管理器(FlowLayout)
边界布局管理器(BorderLayout)
网格布局管理器(GridLayout)
卡片布局管理器(CardLayout)
2,SWING组件
Swing 是一个为Java设计的GUI工具包。Swing是JAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件。Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。
JFrame顶层容器
JPenel面板,也是一种界面
基本控件:JButton按钮
JRadioButton单选按钮
JChecBox复选框
JCombBox组合框
JLabel标签
JTextField文本编辑框
JTextArea文本区域
JPasswordField密码输入框
等等,具体使用方法可查看源代码
二,实现思路
1,首先我们先创建一个窗体,具体大小自己来定,设置窗体放在合适位置,可关闭之类的;
2,蓝色QQ背景,其实是一张图片,我们可以download一张图片,把它添加到窗体上;
3,接下来,就是一些组件的添加了,自己调节好组件的大小,位置,添加到窗体的合适位置(注意:需要设置流式布局,它会让添加到容器上的组件按照布局类的方式去排列对齐。);
4,最后就是验证账号密码,如果正确,跳转到另一个界面,如果失败,说明登录失败。
三,登录界面代码分析
话不多说,直接上代码:
import java.awt.Color;
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 JFrameTest {
public static void main(String args []){
//创建对象
JFrameTest tf=new JFrameTest();
//使用对象调用方法
tf.showFrame();
}
public void showFrame() {
//创建一个窗体
JFrame frame=new JFrame();
//设置窗体标题
frame.setTitle("登录界面");
//设置窗体大小
frame.setSize(450,450);
//创建一个布局方式
FlowLayout layout = new FlowLayout();
//设置窗体的布局方式
frame.setLayout(layout);
//创建图片对象
ImageIcon icon = new ImageIcon("D:\\QLDownLoad\\QQ.jpg");
//创建一个图片标签对象
JLabel iconLabel = new JLabel(icon);
//添加图片标签对象到窗体上
frame.add(iconLabel);
//创建一个显示文字的标签
JLabel iconaLabel = new JLabel("QQ");
frame.add(iconaLabel);
//创建一个输入框对象
JTextField namelnput = new JTextField();
//设置输入框的大小
Dimension inputSize = new Dimension(300,30);
namelnput.setPreferredSize(inputSize);
//添加输入框到窗体上
frame.add(namelnput);
//创建一个复选框
JCheckBox fuxuankuang = new JCheckBox("显示QQ");
//添加复选框到窗体上
frame.add(fuxuankuang);
//创建密码标签
JLabel iconbLabel = new JLabel("密码");
//添加标签到窗体上
frame.add(iconbLabel);
//创建一个密码输入框
JPasswordField jpf = new JPasswordField("密码");
//设置输入框的大小
Dimension inputeSize = new Dimension(300,30);
jpf.setPreferredSize(inputeSize);
//添加输入框到窗体上
frame.add(jpf);
//创建一个复选框
JCheckBox fuxukuang = new JCheckBox("显示密码");
frame.add(fuxukuang);
//创建按钮
JButton btn = new JButton("登录");
//添加按钮
frame.add(btn);
//设置按钮颜色
btn.setForeground(Color.GREEN);
//设置背景颜色
btn.setBackground(new Color(100,100,100));
//创建监听器对象
FrameListener jiantingqi = new FrameListener();
//给按钮添加监听器
btn.addActionListener(jiantingqi);
//给监听器的属性赋值
jiantingqi.input=namelnput;
jiantingqi.input=jpf;
//设置窗体可见
frame.setVisible(true);
}
}
四,账号密码验证以及界面跳转
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public class FrameListener implements ActionListener {
//输出入框的对象
JTextField input;
public void actionPerformed(ActionEvent e){
//获取内容
String name = input.getText();
String password = input.getText();
//自己设置账号密码
if(name.equals("1022") | password.equals("1234")){
JFrame frame = new JFrame();
frame.setSize(300,300);
frame.setTitle("登录成功");
frame.setVisible(true);
}
else{
System.out.println("登录错误");
}
}
}
登录成功后:
现在我们实现了登陆界面,以及验证账号密码正确后的跳转界面。