参考已有的登陆页面可知,一般的登录页面包含图片、提示文字、文本输入框、密码输入框等,这些功能可由Java一一实现。
要完成这些功能,要用到Java的swing和awt开发工具包,在引用的对象前写入
import javax.swing.*;
import java.awt.*;
这两行代码即可。
接口,在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
源代码如下:
package LOG;
import javax.swing.*;
import java.awt.*;
public class log {
public void inition(){
JFrame jf=new JFrame();//建立一个新的登录页面的类
jf.setTitle("登录界面");//标题
jf.setSize(360, 475);//设置页面宽高
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗体关闭功能,若无该行代码,即使关掉了页面,程序也会在后台运行
jf.setLocationRelativeTo(null);//居中显示
FlowLayout fl=new FlowLayout();//实例化流式布局器
jf.setLayout(fl);//设置布局器
//实例化组件对象
//图片对象
ImageIcon image = new ImageIcon("C:\\Users\\jl\\Pictures\\Saved Pictures\\狼.jpg");
//图片标签.文字标签。注意地址中间要用两条线
JLabel imageJIa=new JLabel(image);
JLabel nameJIa=new JLabel("账号:");
JLabel pwdJIa=new JLabel("密码:");
Dimension Txtsize = new Dimension(60,40);
pwdJIa.setPreferredSize(Txtsize);
nameJIa.setPreferredSize(Txtsize);
JLabel NullJIa=new JLabel("");
JLabel NullJIa2=new JLabel("");
//尺寸
Dimension inputdim=new Dimension(230,30);
//输入框
JTextField namejtx=new JTextField();
JPasswordField pwdJpf=new JPasswordField();
//设置尺寸
namejtx.setPreferredSize(inputdim);
pwdJpf.setPreferredSize(inputdim);
Dimension Nullsize = new Dimension(70,30);
Dimension Nullsize2 = new Dimension(50,30);
NullJIa.setPreferredSize(Nullsize);
NullJIa2.setPreferredSize(Nullsize2);
//复选框
JCheckBox jBox=new JCheckBox("记住密码");
JCheckBox jBBox=new JCheckBox("自动登录");
Dimension jBoxsize=new Dimension(100,40);
jBox.setPreferredSize(jBoxsize);
jBBox.setPreferredSize(jBoxsize);
//按钮
JButton btn=new JButton("登录");
JButton btn2=new JButton("取消");
Dimension bntsize=new Dimension(60,30);
btn.setPreferredSize(bntsize);
btn2.setPreferredSize(bntsize);
//将组建添加到容器上
jf.add(imageJIa);
jf.add(nameJIa);
jf.add(namejtx);
jf.add(pwdJIa);
jf.add(pwdJpf);
jf.add(jBox);
jf.add(NullJIa);
jf.add(jBBox);
jf.add(btn);
jf.add(NullJIa2);
jf.add(btn2);
jf.setVisible(true);//窗体展示
//实例化实现了动作监听接口的类的对象
LoginListener loginLis=new LoginListener();
//给按钮添加监听器
btn.addActionListener(loginLis);
loginLis.jtx=namejtx;
loginLis.jpd=pwdJpf;
}
监听器代码:
public static void main(String[] args){
log lg=new log();
lg.inition();
}
package LOG;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class LoginListener implements ActionListener{
JTextField jtx;
JPasswordField jpd;
//组件被点击时自动调用
public void actionPerformed(ActionEvent e){
String namestr=jtx.getText();
String passwordstr=jpd.getText();
if(namestr.equals("123456")&&passwordstr.equals("12345678")){
System.out.println("账号正确:"+namestr);
System.out.println("账号密码正确");
JFrame jf3=new JFrame();
jf3.setTitle("登录成功界面");//标题
jf3.setSize(360, 475);//页面宽高
jf3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗体关闭功能
jf3.setLocationRelativeTo(null);//居中显示
FlowLayout fl3=new FlowLayout();//实例化流式布局器
jf3.setLayout(fl3);//设置布局器
JLabel Print2=new JLabel("登录成功");
jf3.add(Print2);
jf3.setVisible(true);//窗体展示
}
else{
System.out.println("账号或密码错误");
JFrame jf2=new JFrame();
jf2.setTitle("登录失败界面");//标题
jf2.setSize(360, 475);//页面宽高
jf2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗体关闭功能
jf2.setLocationRelativeTo(null);//居中显示
FlowLayout fl2=new FlowLayout();//实例化流式布局器
jf2.setLayout(fl2);//设置布局器
JLabel Print=new JLabel("登录失败");
jf2.add(Print);
jf2.setVisible(true);//窗体展示
}
}