Java 界面——登录界面

goal:点击按钮,系统输出"按下"

先了解一下接口,事件监听以及界面的创建

接口:

什么是接口,就比如手机和电脑,有许多接口,有耳机接口,USB接口,键盘接口,充电接口。接口就类似于一个规则,比如键盘接口就是用来和键盘连接的,不能接错,也无法改变,所以接口是一个抽象类,是不能创建对象的。

接口的创建: public interface 接口名{ }
接口的属性:
属性类型 属性名=属性的初始值
属性类型有:
static 静态的,可通过类名/接口名直接使用
final:最终的,不可改变的,必须要初始化
接口的方法:
方法返回值的类型 方法名(参数类型 参数名)
接口的使用:
对需要用接口的类加入接口
格式:public class 类名 implements 接口名{ }
而类为了实现接口中的方法,必须重写接口中的所有方法

事件监听机制

给事件原组件添加监听器,使得发生对应事件时,调用监听器中的对应方法

事件:
鼠标事件:用鼠标操作组件(关注点:鼠标操作位置)
动作事件:用鼠标点击按钮(关注的:点的哪一个按钮)
键盘事件:用键盘操作
事件源组件:当前发生事件的组件
事件监听器:
鼠标事件监听器: MouseListener
动作事件监听器:ActionListener
键盘事件监听器:KeyListener

利用上节课写的界面添加事件监听:
当按钮被点击,系统便提示
那么这时的事件时动作事件
//创建一个监听器类

public class Listener implements ActionListener{}

界面的创建

首先先创建好一个类Login,并定义其中一个方法show用于显示界面。

public class Login{
	public void show(){
	}
}

在Java中有一个方法用来使用窗体JFrame,在窗体上可以添加我们想要的组件,如确定按钮,输入账号密码的文本框,是否记住密码的复选框,以及带有链接的忘记密码和创建账号等等,下面列出了各组件的关键字
JFrame 窗体
FlowLayout 流式布局(根据窗体大小和组件数目自适应大小)
JTextField 动态文本框
JPasswordField 密码框
JButton 按钮
JCheckBox 复选框
JLabel 静态文本框(可装文字,图片)
String 字符串
而所有组件先应创建对象,然后记得加在窗体上,show方法是显示界面的方法,所有组件的代码都写在这个函数里。

public class Login{
	public void show(){
		JFrame frame=new JFrame();
		Frame.setSize(600,600);//窗体大小为600*600
		//账号密码框
		JTextField name=new JTextField(40);//长度为40
		JPasswordField password=new JPasswordField(40);
		Frame.add(name);
		Frame.add(password);
		//按钮
		JButton button=new JButton("登录")//按钮上的文字为“登录”
		Frame.add(button);
		//流式布局
		FlowLayout layout=new FlowLayout();
		Frame.setLayout(layout);//这里不是add
		//设置窗体可见
		frame.setVisible(true);
	}
}

记得要在最后设置窗体的可见为true,才能保证所有组件可见,在主方法里先创建一个整个Login类的对象,再用对象调用show方法就可以实现打开界面

public static void main(String[] args){
	Login ui=new Login();
	ui.show();
}

如果想要美化一下界面,可以自己添加组件并调节长度,再介绍几个辅助组件
Dimension 尺寸
ImageIcon 图片
具体方法为

Dimension btnsize=new Dimension(450,35);//尺寸为450*35
button.setPreferredSize(btnsize);

ImageIcon picture=new ImageIcon("login.jpg")//图片要先粘贴到src下
JLabel picturelabel=new JLabel(picture);//创建了一个有图片的文本
frame.add(picturelabel);

监听器的添加

先创建一个监听器类LoginListener,由于是按下按钮的事件源,则implements ActionListener

public class LoginListener implements ActionListener{ }

然后在show方法里创建监听器对象

LoginListener loginL=new LoginListner();
//为按钮添加监听器
button.addActionListener(loginL);

那如何才能获取在窗体上输入的账号和密码呢?首先要在监听器里创建JTextField和JPasswordField的对象,并使得窗体的对象与监听器的对象一致

public class LoginListener implements ActionListener{
	JTextField name;
	JPasswordField key;
}

在show方法里

LoginListener loginL=new LoginListner();
//为按钮添加监听器
button.addActionListener(loginL);
//使得监听器对象里的name和key与界面的name和password一致,也就是用的同一个对象
loginL.name=name;
loginL.key=password;

在监听器类里会自动或手动添加actionPerformed(ActionEvent e){}方法,方法也就是当按钮按下时会做的动作,那么要做的的是对比账号和密码是否正确

publc void actionPerformed(ActionEvent e){
	String Tname=name.getText();
	String Tkey=key.getText();
}

这里String的作用是把文本框的内容取出来放到字符串里,才能判断账号密码是否正确。这里用到getText,但系统不建议Password使用getText,有可能会被打上黄色标记,但不会报错,可以先用着。
假设账号是"111",密码是"222"

publc void actionPerformed(ActionEvent e){
 	String Tname=name.getText();
 	String Tkey=key.getText();
 	if(Tname.equals("111")&&Tkey.equals("222")){
 		JOptionPane.showMessageDialog(null,"登录成功");//弹出框显示"登录成功"
 }
}else{
	JOptionPane.showMessageDialog(null,"登录失败");
}

到这里,登录界面的雏形已经出来了,由于界面个性化比较足,可以自行设计,本文篇幅比较长,就不放图片了。