1、GUI简介
GUI(图形用户界面) 即人机交互图形化用户界面设计,又称图形用户接口。GUI开发常用的包
- –java.awt.*;用于创建用户界面和绘制图形图像的所有类
- –java.awt.event.*;处理由 AWT 组件所激发的各类事件
- –java.awt.geom;用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类
- –javax.swing.*;“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同
- –swing继承于awt,所以功能肯定有扩展,而且轻量级
2、项目
一个简单的登录界面,适合新手拿来练手用。
首先创建一个登录的主页面。
package cn.gui.login;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/*
* 设计思路:先设置面板,然后在面板里面理加窗体 、标签、文本框、按钮。
* 即1窗体 3个面板 2个标签 2个文本框 2个按钮
*/
public class Login extends JFrame{
public Login(){
//3个面板
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
//2个标签
JLabel lb1 = new JLabel("用户名:");
JLabel lb2 = new JLabel("密 码:");
//2个文本框
final JTextField jtf1 = new JTextField(10);
//final JTextField jtf2 = new JTextField(10);
final JPasswordField jtf2 = new JPasswordField(10);
//2个按钮
JButton btn1 = new JButton("确定");
JButton btn2 = new JButton("取消");
JCheckBox check = new JCheckBox("记住密码");
//布局:在窗体中布局面板<边界、表格>,面板中布局组件
this.setLayout(new GridLayout(3, 1));//设置窗体布局为表格,3行1列
this.add(jp1);
this.add(jp2);
this.add(jp3);
jp1.add(lb1);
jp1.add(jtf1);
jp2.add(lb2);
jp2.add(jtf2);
jp3.add(btn1);
jp3.add(btn2);
jp3.add(check);
//为窗体显示设置常规属性
this.setSize(400, 200);//设置窗体大小
this.setLocationRelativeTo(null);//设置居中显示
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭程序退出
this.setResizable(false);//设置大小不可变
this.setTitle("Tim");//设置标题
//添加按钮登陆事件
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
//获取两个文本框的字符串--判断
String user = jtf1.getText();
//String pwd = jtf2.getText();
//String pwd = jtf2.getPassword().toString();
String pwd = String.valueOf(jtf2.getPassword());
System.out.println(pwd);
if(user.equals("admin")&&pwd.equals("123456")){
//System.out.println("登陆成功!");
//对话框
//JOptionPane.showMessageDialog(Login.this, "登陆成功!");
//如果验证成功,则进入欢迎窗体,登陆窗体关闭
new Friends().setVisible(true);
Login.this.dispose();//关闭当前登陆界面
}else{
//System.out.println("登陆失败!");
JOptionPane.showMessageDialog(Login.this, "登陆失败!");
}
}
});
}
}
然后创建一个登录后的页面。
package cn.gui.login;
import java.awt.GridLayout;
import javax.swing.*;
public class Friends extends JFrame{
public Friends(){
this.setTitle("welcome");
this.setSize(300, 300);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jp = new JPanel();
this.setLayout(new GridLayout(2,1));
this.add(jp);
//放置菜单:JMenuBar JMenu JMenuItem
//设置菜单条
JMenuBar bar = new JMenuBar();
//设置菜单
JMenu m1 = new JMenu("File");
JMenu m2 = new JMenu("Edit");
JMenu m3 = new JMenu("Help");
//设置菜单项
JMenuItem it1 = new JMenuItem("Open");
JMenuItem it2 = new JMenuItem("Save");
JMenuItem it3 = new JMenuItem("Colse");
JMenuItem it4 = new JMenuItem("Delete");
JMenuItem it5= new JMenuItem("Copy");
JMenuItem it6 = new JMenuItem("Find");
JMenuItem it7 = new JMenuItem("Welcome");
JMenuItem it8= new JMenuItem("Serach");
JMenuItem it9 = new JMenuItem("About");
//将菜单项加入菜单
m1.add(it1);
m1.add(it2);
m1.add(it3);
m2.add(it4);
m2.add(it5);
m2.add(it6);
m3.add(it7);
m3.add(it8);
m3.add(it9);
//将菜单加入菜单条
bar.add(m1);
bar.add(m2);
bar.add(m3);
//将菜单条放置到面板
jp.add(bar);
}
}
最后创建一个测试类。
package cngui.login;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
new Login().setVisible(true);
}
}
这只是一个简单的GUI登录界面,在登录时采用监听,判断登录条件是否合理。这种方式比较简单,但是由于登录的用户名和密码是固定的,比较死板,所以一般通常会加上数据库(之前做过一个,用的是MySQL,具体可以查看:添加链接描述
基于GUI+MySQL的学生信息管理系统)。
如果不足之处,欢迎各位提出意见,谢谢