Java学习日记:UI篇(2)

Java学习日记:UI篇(2)

上一篇链接

        ~~~~~~~        上次只是制作了一个界面,界面中的按钮并不能进行操作,这一次我们将运用监听器、接口,让我们的按钮工作起来。我们会用到ActionListener这个接口(用于接收操作事件的侦听器接口)。
        ~~~~~~~        首先我们需要写一个类,来使用接口。`格式:public class 类名 implements {}。示例(我们要用到的ActionListener):public class LoginUIListener implements ActionListener{}。然后我们需要去到这个接口的文档里面将它的方法全部复制过来,然后进行重写,写成我们需要的方法。
下面是我需要用到的接口示例:

package uL;
/*
*只是用作测试学习,所以很不完善,很多东西没有加进来
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class LoginUIListener implements ActionListener{
	
	//传值,获取账号,密码,在这里新建空白的pwdField以及zhanghaoField是为了能让界面类里面的这两个参数与这里的值相同,实现传参目的
	JTextField zhanghaoField; 
	JPasswordField pwdField;

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String btnstr = e.getActionCommand();//获取按钮的信息,用于接下来的对比
		if(btnstr.equals("登录")) {//比对按钮信息
			if(zhanghaoField.getText().equals("123")&&pwdField.getText().equals("123")) {//密码,账号均为123,这里先加个打印输入,之后可以在这里调用新的页面,实现页面跳转
			System.out.println(btnstr);			
			}
		}
		else if(btnstr.equals("注册")){		//留待补充	
		}		
	}

}

以上便是接口类,接下来我们回到上一次的登录界面里去实现这个接口类:

//实例化监听接口
		LoginUIListener lul =new LoginUIListener();
		//为按钮绑定监听器
		loginBtn.addActionListener(lul);	
		regitBtn.addActionListener(lul);
		
		//向LoginUIListener传值
		lul.zhanghaoField =zhanghaoField;
		lul.pwdField      =pwdField;

通过这一段代码我们就可以实现按钮动作的监听。

放上登录界面的全部代码:

package uL;

import java.awt.Dimension;
import java.awt.FlowLayout;//流体布局
import java.awt.event.ContainerListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;//窗体
import javax.swing.JLabel;//标签
import javax.swing.JPasswordField;
import javax.swing.JTextField;


//定义类
public class LoginUI{
	//主函数
	public static void main(String[] args){
		
		LoginUI LUI= new LoginUI();
		LUI.ShowMyUI();
		
	}
	
	public void ShowMyUI() {
		//初始化界面
		JFrame LoginJF = new JFrame();
		LoginJF.setTitle("QQ");
		LoginJF.setSize(600,450);
		LoginJF.setLocationRelativeTo(null);
		LoginJF.setDefaultCloseOperation(3);
		LoginJF.setResizable(false);//窗体大小默认不可变
		
		// 规则  布局-流式布局(居中, 按照添加的顺序从左至右从上至下摆放)   --  按钮 - 遵从JFrame默认的边框布局 
		FlowLayout  fl =new FlowLayout();
		LoginJF.setLayout(fl);
		
		//文字 -- 图片  —— 标签
		ImageIcon imgIcon = new ImageIcon("E:\\study\\JAVA\\May-23-study\\src\\uL\\image\\UI-1.png");//绝对路径的图片
		JLabel imgJL =new JLabel(imgIcon);	
		JLabel zhanghaoJL =new JLabel("账号:");
		JLabel pwdJL = new JLabel("密码:");
		JLabel blankJL1 =new JLabel();
		JLabel blankJL2 =new JLabel();
		JLabel blankJL3 =new JLabel();
		JLabel blankJL4 =new JLabel();
		JLabel blankJL5 =new JLabel();
		JLabel blankJL6 =new JLabel();
		JLabel blankJL7 =new JLabel();
		JLabel blankJL8 =new JLabel();
		
		JTextField zhanghaoField = new JTextField(); // 文本框
		JPasswordField pwdField =new JPasswordField();//密码框
		
		JButton loginBtn = new JButton("登录");
		JButton regitBtn = new JButton("注册");
		JButton fogetBtn = new JButton("忘记密码");
		JCheckBox reBox = new JCheckBox("自动登录");
		JCheckBox remBox = new JCheckBox("记住密码");
		
		
		Dimension dim = new Dimension(300,30);//尺寸
		
		Dimension dim1 = new Dimension(150,30);//
		Dimension dim3 = new Dimension(70,30);//占位空白框尺寸,账号提示前
		Dimension dim2 = new Dimension(140,30);//占位空白框尺寸,账号输入框后1
		Dimension dim4 = new Dimension(76,30);//占位空白框尺寸,账号输入框后2
		Dimension dim5 = new Dimension(100,30);//占位空白框尺寸,复选框前
		Dimension dim6 = new Dimension(60,30);//占位空白框尺寸,复选框后
		Dimension dim7 = new Dimension(40,30);//占位空白框尺寸,登录后
		Dimension dim8 = new Dimension(80,30);//占位空白框尺寸,登录前
		Dimension dimlogin = new Dimension(250,30);//占位空白框尺寸,密码输入框后
		
		zhanghaoField.setPreferredSize(dim);//组件设置大小
		pwdField.setPreferredSize(dim);	
		blankJL1.setPreferredSize(dim1);
		blankJL2.setPreferredSize(dim2);
		blankJL3.setPreferredSize(dim3);
		blankJL4.setPreferredSize(dim4);
		blankJL5.setPreferredSize(dim5);
		blankJL6.setPreferredSize(dim6);
		blankJL7.setPreferredSize(dim7);
		blankJL8.setPreferredSize(dim8);
		loginBtn.setPreferredSize(dimlogin);
		
		
		LoginJF.add(imgJL);
		LoginJF.add(blankJL3);
		
		LoginJF.add(zhanghaoJL);
		LoginJF.add(zhanghaoField);
		LoginJF.add(blankJL2);
		LoginJF.add(blankJL4);
		
		LoginJF.add(pwdJL);
		LoginJF.add(pwdField);
		LoginJF.add(blankJL1);
		LoginJF.add(blankJL5);
		LoginJF.add(remBox);
		LoginJF.add(reBox);
		LoginJF.add(fogetBtn);
		LoginJF.add(blankJL6);
		LoginJF.add(blankJL8);
		LoginJF.add(loginBtn);
		LoginJF.add(blankJL7);
		
		LoginJF.setVisible(true);//可视化
		
		//实例化监听接口
		LoginUIListener lul =new LoginUIListener();
		//绑定按钮
		loginBtn.addActionListener(lul);	
		regitBtn.addActionListener(lul);
		
		//向LoginUIListener传值
		lul.zhanghaoField =zhanghaoField;
		lul.pwdField      =pwdField;
	}
	
}


以上便是登录界面及按钮动作监听的实现,欢迎大家交流讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值