模仿TIM登录

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的学生信息管理系统)。

如果不足之处,欢迎各位提出意见,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值