我们来做一个这样的登录界面(Eclipse)
先创建一个类,准备好一写需要的包
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
然后new一个界面,写好大概的窗体属性
程序入口
public static void main(String[] args)
{
Denglu lg = new Denglu();
lg.showUI();
}
public void showUI() {
//JFrame 的使用
JFrame jf = new JFrame();
//给窗体设置相关属性
jf.setTitle("中国象棋登录界面");
jf.setSize(400,400);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 进程关闭
jf.setLocationRelativeTo(null);//居中显示
jf.setResizable(false);//设置是否可以改变尺寸,写true就可以改变尺寸了
写这个jf.setDefaultCloseOperation(3);也是等价的
组件的创造
//组件布局
//流式布局
FlowLayout fl = new FlowLayout();
jf.setLayout(fl);
//尺寸
Dimension dim = new Dimension(330,30);//后面直接用
//组件创建
ImageIcon topim= new ImageIcon("C:\\Users\\86153\\Desktop\\Chinesechess.png");
//图片标签
JLabel imjla = new JLabel(topim);
//文字标签
JLabel namejla = new JLabel("账号:");
JLabel pwdjla = new JLabel("密码:");
JButton btn1 = new JButton("登录");
JButton btn2 = new JButton("快速注册");
//输入框
JTextField namejtx = new JTextField();//文本输入框
JPasswordField pwdin = new JPasswordField();//密码输入框
//复选框
JCheckBox jBox = new JCheckBox("记住密码 ");
插入的图片是直接放在桌面的,只要记住地址,写上去就可以了 ImageIcon topim= new ImageIcon(“C:\Users\86153\Desktop\Chinesechess.png”);
名字随便怎么写,建议写的易于辨认一点
设置组件的颜色,文本框的大小尺寸
//组件的设置
btn1.setBackground(Color.CYAN);
btn2.setBackground(Color.CYAN);
namejtx.setPreferredSize(dim);
pwdin.setPreferredSize(dim);
最后就是把你辛辛苦苦写的东西都加在界面上,并记得可视化哦
//添加组件到对应容器上
jf.add(imjla);
jf.add(namejla);
jf.add(namejtx);
jf.add(pwdjla);
jf.add(pwdin);
jf.add(jBox);
jf.add(btn1);
jf.add(btn2);
jf.setVisible(true);//可视化
事件监听
//实例化实现了动作监听器接口的类的对象
LoginListener ll = new LoginListener();
//给按钮添加动作监听器
btn1.addActionListener(ll);
btn2.addActionListener(ll);
记得把界面传过去
ll.namein=namejtx;
ll.pwdin=pwdin;
ll.jf=jf;
下一步,写监听器(一个新的类)
包
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import Pad_3D.Huatu1;
import Pad_3D.Zhuce;
接口关键字 —implements
其格式:public class 类名 implements 接口名{ } ,
其中不能创建带有具体方法体的方法。
public class LoginListener implements ActionListener{
public JTextField namein;
JPasswordField pwdin;
JFrame jf;//点击按钮时自动调用
重载
public void actionPerformed(ActionEvent e) {
String btnstr = e.getActionCommand();
切换到下一个界面:登录或者注册
if(btnstr.equals("登录")){
if( namein.getText().equals("123")&&pwdin.getText().equals("456")) {
System.out.println("账号密码正确");
Huatu1 ht =new Huatu1();
ht.initUI();
jf.setVisible(true);
}else {
System.out.println("账号密码错误");
} }
else if(btnstr.equals("快速注册")){
Zhuce zc =new Zhuce();
zc.initUI();
jf.setVisible(true);
System.out.println("按钮被点击了 == "+ btnstr);
}
展示一下注册的代码吧
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Zhuce extends JFrame{
public void initUI() {
this.setTitle("快速注册");
this.setSize(400,150);
this.setDefaultCloseOperation(2);
JLabel namesjh = new JLabel("手机号:");
JLabel nameqsryzm = new JLabel("请输入验证码:");
FlowLayout fl = new FlowLayout();
this.setLayout(fl);
Dimension dim1 = new Dimension(300,30);
Dimension dim2 = new Dimension(160,30);
JTextField namesjhm = new JTextField();//文本输入框
JTextField nameyzm = new JTextField();
JButton btn12 = new JButton("获取验证码");
btn12.setBackground(Color.WHITE);
namesjhm.setPreferredSize(dim1);
nameyzm.setPreferredSize(dim2);
btn12.setBackground(Color.ORANGE);
this.add(namesjh);
this.add(namesjhm);
this.add(nameqsryzm);
this.add(nameyzm);
this.add(btn12);
this.setVisible(true);
}
public static void main(String[] args) {
Zhuce zhuce1 = new Zhuce();
zhuce1.initUI();
}
}
点注册
点登录之后的展示有点简陋就不展示了…