Java GUI 实现登录界面

具体效果图:

在这里插入图片描述

详细代码:

package java_gui;

import java.awt.Color;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JRootPane;
import javax.swing.JTextField;

public class Login extends JFrame {

		private static final long serialVersionUID = -6788045638380819221L;
		//用户名
		private JTextField ulName;
		//密码
		private JPasswordField ulPasswd;
		//小容器
		private JLabel j1;
		private JLabel j2;
		private JLabel j3;
		private JLabel j4;
		//小按钮
		private JButton b1;
		private JButton b2;
		private JButton b3;
		//复选框
		private JCheckBox c1;
		private JCheckBox c2;
		//列表框
		private JComboBox<String> cb1;
		/**
		 * 初始化QQ登录页面
		 * */
		public Login() {
			//设置登录窗口标题
			this.setTitle("QQ登录");
			//去掉窗口的装饰(边框)
			//  this.setUndecorated(true);
			//采用指定的窗口装饰风格
			this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
			//窗体组件初始化
			init();
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			//设置布局为绝对定位
			this.setLayout(null);
			this.setBounds(0, 0, 355, 265);
			//设置窗体的图标
			Image img0 = new ImageIcon("D:/logo.png").getImage();
			this.setIconImage(img0);
			//窗体大小不能改变
			this.setResizable(false);
			//居中显示
			this.setLocationRelativeTo(null);
			//窗体显示
			this.setVisible(true);
		}
		/**
		 * 窗体组件初始化
		 * */
		public void init() {
			//创建一个容器,其中的图片大小和setBounds第三、四个参数要基本一致(需要自己计算裁剪)
			Container container = this.getContentPane();
			j1 = new JLabel();
			//设置背景色
			Image img1 = new ImageIcon("D:/bgimg.png").getImage();
			j1.setIcon(new ImageIcon(img1));
			j1.setBounds(0, 0, 355, 265);
			//qq头像设定
			j2 = new JLabel();
			Image img2 = new ImageIcon("D:/hdimg.png").getImage();
			j2.setIcon(new ImageIcon(img2));
			j2.setBounds(40, 95, 50, 53);
			//用户名输入框
			ulName = new JTextField();
			ulName.setBounds(100, 100, 150, 20);
			//注册账号
			j3 = new JLabel("注册账号");
			j3.setBounds(260, 100, 70, 20);
			//密码输入框
			ulPasswd = new JPasswordField();
			ulPasswd.setBounds(100, 130, 150, 20);
			//找回密码
			j4= new JLabel("找回密码");
			j4.setBounds(260, 130, 70, 20);
			//记住密码
			c1 = new JCheckBox("记住密码");
			c1.setBounds(105, 155, 80, 15);
			//自动登陆
			c2 = new JCheckBox("自动登陆");
			c2.setBounds(185, 155, 80, 15);
			//用户登陆状态选择
			cb1 = new JComboBox<String>();
			cb1.addItem("在线");
			cb1.addItem("隐身");
			cb1.addItem("离开");
			cb1.setBounds(40, 150, 55, 20);
			//登陆按钮
			b1 = new JButton("登录");
			//设置字体和颜色和手形指针
			b1.setFont(new Font("宋体", Font.PLAIN, 12));
			b1.setForeground(Color.RED);
			b1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
			b1.setBounds(280, 200, 65, 20);
			//给按钮添加
			b1.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					String cmd = e.getActionCommand();
					if("登录".equals(cmd)) {
						String username = ulName.getText();
						String userpassword = ulPasswd.getText();
						if(username.equals("tskk") && userpassword.equals("123456")) {
							JOptionPane.showConfirmDialog(null, "登录成功");
						} else {
							JOptionPane.showConfirmDialog(null, "登录失败");
						}
					}
				}
			});
			//多账号
			b2 = new JButton("多账号");
			b2.setBounds(5, 200, 75, 20);
			//设置
			b3 = new JButton("设置");
			b3.setBounds(100, 200, 65, 20);
			//所有组件用容器装载
			j1.add(j2);
			j1.add(j3);
			j1.add(j4);
			j1.add(c1);
			j1.add(c2);
			j1.add(cb1);
			j1.add(b1);
			j1.add(b2);
			j1.add(b3);
			container.add(j1);
			container.add(ulName);
			container.add(ulPasswd);
		}
		public static void main(String[] args) {
			new Login();
		}
}
  • 15
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值