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;
|
我们正确输入账户密码后按下“登录”,执行结果如下:
以上就是简单的界面实现及事件的监听方法了。
感谢观看!