Java的界面及事件的监听

Java的界面及事件的监听

创建界面
一个简单的登录界面
如上图所示,这就是一个在Java环境下实现的简单界面。此界面包括标题、图片、账号密码输入框、记住密码和自动登录自选框以及登录按钮。要实现这样一个界面,首先要导入一个用于界面开发的类别:

`import javax.swing.JFrame;`

这样,我们才可以定义一个JFrame变量:

JFrame jf = new JFrame();

定义界面变量之后我们就可以对这个界面进行一定的修饰:

	jf.setTitle("欢迎登录");
	jf.setSize(400,370); 
	jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	jf.setLocationRelativeTo(null);
	jf.setResizable(false);

这几行代码分别设定了界面的标题、大小尺寸、关闭按钮和组件排布方式以及设定不能改变界面大小,其中组件排布方式为局中。
在这里插入图片描述
这样我们就实现了一个指定大小的界面。需要注意的是,记得给程序添加关闭按钮,即用jf.setDefaultCloseOperation( );来实现,括号内填写 JFrame.EXIT_ON_CLOSE 或 3 ,这两个式子是等价的。
修饰界面
创建了界面之后,我们就可以就可以对其进行修饰。首先我们定义组件的排列方式为流式排列:

FlowLayout fl=new FlowLayout();
	jf.setLayout(fl);

其次,我们创建一系列组件:

    ImageIcon image=new ImageIcon("C:\\Users\\15593\\Pictures\\Saved Pictures\\bg1.jpg");
	JLabel imagela=new JLabel(image);
	JLabel name=new JLabel("账号");
	JLabel password =new JLabel("密码");
		
	JTextField namein=new JTextField();
	JPasswordField passin=new JPasswordField();
	JButton btn=new JButton("登录");
	JCheckBox check1=new JCheckBox("记住密码");
	JCheckBox check2=new JCheckBox("自动登录");

而要创建这些组件,我们也要事先导入这些组件的包:

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

其中,引用的图片可以是储存在电脑中时的路径名,也可以是放在Project中的图像名。让我们对按钮进行一定的修饰:

	Dimension dim=new Dimension(330,30);
	btn.setBackground(Color.WHITE);
	namein.setPreferredSize(dim);
	passin.setPreferredSize(dim);

这几行代码分别规定了按钮的背景颜色和两个输入文本框的大小。但要记得,创建完组件后要将组件添加到界面里:

	jf.add(imagela);
	jf.add(name);
	jf.add(namein);
	jf.add(password);
	jf.add(passin);
	jf.add(check1);
	jf.add(check2);
	jf.add(btn);
	jf.setVisible(true);

记得一定要记得写最后一行代码,不然界面会一闪而过!
在这里插入图片描述
一个界面就这样成功实现了。
事件监听
实现了界面之后,我们就要实现一定界面的功能。于是我们创建监听器,代码如下:

package 界面;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
import javax.swing.JFrame;

public class LoginListener implements ActionListener{

	JTextField nametx;
	JTextField passtx;
	JFrame jf;
	Pad3DBall pad3dball;
	
	public void actionPerformed(ActionEvent e) {
		
		 String nameString = nametx.getText();
		 String passString = passtx.getText();
		 
		 if (passString.equals("")) {
					System.out.println("请输入密码");
		 }else {
			 
		 if (nameString.equals("123456")&&passString.equals("456789")) {
					System.out.println("账号正确");
					jf.setVisible(false);
					Pad3DBall pad3dball = new Pad3DBall();
					pad3dball.intUI();
		 }else {
					System.out.println("账号输入错误");
		 }
			 
		}
		
	}

}

我们用一个类去实现接口,即 implements
其格式:public class 类名 implements 接口名{ } ,其中不能创建带有具体方法体的方法,因此我们需要将方法后的大括号改为分号,化具体为抽象:

    JTextField nametx;
	JTextField passtx;
	JFrame jf;
	Pad3DBall pad3dball;

之后我们重载监听器接口的抽象方法

public void actionPerformed(ActionEvent e) {
		
		 String nameString = nametx.getText();
		 String passString = passtx.getText();
		 
		 if (passString.equals("")) {
					System.out.println("请输入密码");
		 }else {
			 
		 if (nameString.equals("123456")&&passString.equals("456789")) {
					System.out.println("账号正确");
					jf.setVisible(false);
					Pad3DBall pad3dball = new Pad3DBall();
					pad3dball.intUI();
		 }else {
					System.out.println("账号输入错误");
		 }
			 
		}
		
	}

在这些方法中,我们首先提取了账户密码输入框中用户输入的字符串,将其跟我们既定的数据进行比较,用equals("......")来实现,输入正确后,按下登录按钮就可以执行我们既定的程序了。 其中,jf.setVisible(false);关闭了登录界面,而Pad3DBall pad3dball = new Pad3DBall(); pad3dball.intUI();则执行绘制了一个图像,这里代码从略。
最后,我们将监听器应用到我们的主程序中,在按下按钮(btn)后执行:

		LoginListener nll = new LoginListener();
		btn.addActionListener(nll);
		nll.passtx=passin;
		nll.nametx=namein;
		nll.jf=jf;

我们正确输入账户密码后按下“登录”,执行结果如下:
在这里插入图片描述
以上就是简单的界面实现及事件的监听方法了。
感谢观看!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值