0%

Java实现界面及事件监听

Java的界面及事件的监听

创建界面

一个简单的登录界面

如上图所示,这就是一个在Java环境下实现的简单界面。此界面包括标题、图片、账号密码输入框、记住密码和自动登录自选框以及登录按钮。

要实现这样一个界面,首先要导入一个用于界面开发的类别:

1
`import javax.swing.JFrame;`

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

1
JFrame jf = new JFrame();

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

1
2
3
4
5
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 ,这两个式子是等价的。
修饰界面
创建了界面之后,我们就可以就可以对其进行修饰。首先我们定义组件的排列方式为流式排列:

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

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

1
2
3
4
5
6
7
8
9
10
   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("自动登录");

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

1
2
3
4
5
6
7
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中的图像名。让我们对按钮进行一定的修饰:

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

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

1
2
3
4
5
6
7
8
9
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);

记得一定要记得写最后一行代码,不然界面会一闪而过!

在这里插入图片描述

一个界面就这样成功实现了。
事件监听
实现了界面之后,我们就要实现一定界面的功能。于是我们创建监听器,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 接口名{ } ,其中不能创建带有具体方法体的方法,因此我们需要将方法后的大括号改为分号,化具体为抽象:

1
2
3
4
   JTextField nametx;
JTextField passtx;
JFrame jf;
Pad3DBall pad3dball;

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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)后执行:

1
2
3
4
5
LoginListener nll = new LoginListener();
btn.addActionListener(nll);
nll.passtx=passin;
nll.nametx=namein;
nll.jf=jf;

我们正确输入账户密码后按下“登录”,执行结果如下:

在这里插入图片描述

以上就是简单的界面实现及事件的监听方法了。
感谢观看!