用Java浅做个登录窗口

浅用Java组件创建登录窗口

由于Swing具有跨平台的优势,其界面组件可以在多种操作系统中运行,而且在不同操作系统中的外观和行为都是一致的,同时swing在awt包的基础上还拓展了其他功能,使得能创建出更为丰富的界面。所以下面代码大多使用swing包下的模块

导包

导包注意不要导入一些不必要的模块,会拖慢Java的执行速度

import java.awt.Color;
import java.awt.Font;
import javax.swing.*;

创建login类

创建login类,同时将类中出现的组件变成类的成员属性

class Login extends JFrame {
	JPanel jp;
	JLabel label;
	JTextArea ta1,ta2;
	JTextField tf;
	JPasswordField pw;
	JCheckBox ck1,ck2;
	JButton jb;
}

构造方法

创建构造方法,即创建对象便生成所需组件

public Login(){
		setTitle("Login");
		setSize(400, 400);		// 设置大小
		setLocation(500, 200);	// 设置在父级窗口的位置 即相对位置
		setDefaultCloseOperation(3); // 设置默认关闭窗口的模式
		init();
		setVisible(true);	// 设置窗口可视
		setResizable(false);  //设置不可改变窗口大小以保证组键的位置不发生变化
}

将其他组件分开,避免代码看起来冗余,难以理解
在添加布局时,我这里使用的是null,这样可以准确定位组件的位置,当然也可以用其它布局,如boxLayout布局,通过其静态方法createHorizontalBox()来获得一个行型盒子或createVerticalBox()来或的一个列型盒子,盒子间可以相互嵌套。具体的方法另查。

void init(){		
		jp = new JPanel(); //设置内容面板
		add(jp); // 窗口添加面板
		jp.setBackground(Color.white);  //背景为白色
		jp.setLayout(null); // 将layout设置为null, 即可用setBounds来定位组件的位置
		// 创建标题标签
//		JTextArea label = new JTextArea("LOGIN");
		label = new JLabel("LOGIN1");
		label.setBounds(125,20,150,50); 
		label.setFont(new Font("微软雅黑",Font.BOLD,40));//设置字体格式
		jp.add(label);
		// 创建文本区
		Font font = new Font("宋体",Font.BOLD,20);
		ta1 = new JTextArea("账号");
		ta1.setFont(font);
		ta1.setBounds(50,100,50,50);
		
		ta2 = new JTextArea("密码");
		ta2.setFont(font);
		ta2.setBounds(50,160,50,50);
		//文本框
		tf = new JTextField();
		tf.setBounds(110,100,200,30);
//		tf.addActionListener(new getValues());
		//密码框
		pw = new JPasswordField();
		pw.setBounds(110,160,200,30);
//		pw.addActionListener(new getValues());
		
		// 复选框
		JCheckBox cb1 = new JCheckBox("自动登录");
		cb1.setBounds(50,210,100,30);
		cb1.setBackground(Color.white);
		
		JCheckBox cb2 = new JCheckBox("记住密码");
		cb2.setBounds(240,210,100,30);
		cb2.setBackground(Color.white);

//		创建登录按钮键
		jb = new JButton("登   录");
		jb.setFont(font); //字体设置
		Color color = new Color(76,190,240);
		jb.setBounds(50,260,260,40);
		jb.setBackground(color);
		
		
		//往内容面板添加组件
		jp.add(ta1);jp.add(tf);jp.add(ta2);jp.add(pw);
		jp.add(cb1);jp.add(cb2);jp.add(jb);

创建main类

创建main类,调试login类,观察是否可用

public class Main{
	public static void main(String[] args) {
		Login login = new Login();
	}
}

代码运行结果

在这里插入图片描述

附言

以下代码仅仅创建出一个登录的框架,并无任何的事件处理。如需添加事件处理,可运行以下代码,运行可在控制台上打印出输入框输入的值

import java.awt.event.*;

// 创建监听类实现ActionListener接口
class getValues implements ActionListener{
	Login login ;
	void setUp(Login login) {
		this.login = login;
	}
	public void actionPerformed(ActionEvent e) {
		String user = login.tf.getText();
		String password = String.valueOf(login.pw.getPassword());
		System.out.println("user:"+user+"\npassword:"+password);
	}
}

// 如点击按钮时,触发事件,输出框内的值
// 在构造函数中 的按钮组件后添加以下代码

getValues listen = new getValues();
listen.setUp(this);     // 添加对象
jb.addActionListener(listen);  // 点击组件触发事件

ActionListener事件的其他方法另查java api
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值