界面与监听器

关于Java的界面设置与监听器的总结

1、API文件调用

// An highlighted block
import javax.swing.JFrame;//窗体 自带最小化、最大化、关闭、标题栏,界面核心部分
import java.awt.Dimension; //选定界面尺寸
import java.awt.FlowLayout;//流式布局,即从左至右,从上至下
import javax.swing.ImageIcon;//插入图片时需要用到
import javax.swing.JButton;//界面按钮,后续与监听器组合进入新界面
import javax.swing.JCheckBox;//复选框
import javax.swing.JLabel;//在界面显示,无法执行操作

2、界面基础设置

以QQ登录界面为例
继续导入

import javax.swing.JPasswordField;//文本输入框
import javax.swing.JTextField; //密码输入框

2.1、创建窗体对象

public class LoginUI {
	public void showUI() {
		JFrame jf = new JFrame();//创建一个窗体对象
		}
		}

2.2、设置属性

用对象调用函数

		jf.setTitle("登录界面");
		jf.setSize(290,480);// 尺寸 wide  height 
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置进程关闭
		jf.setLocationRelativeTo(null);//居中显示
 	    jf.setResizable(false);//设置不可改变大小
	 	FlowLayout fl = new FlowLayout();
		jf.setLayout(fl);//设置流式布局

2.3、进行组件布置

组件(Component)是对数据和方法的简单封装
组件有按钮、输入框、菜单、复选框等 是窗体关键部分,需放在窗体布置之后,可视化之前

		ImageIcon img = new ImageIcon("此处放入图片的链接");//图片
		JLabel imgjla = new JLabel(img);//创建对象,调用img //标签,图片需放在标签上
		JLabel namejla = new JLabel("账号:");
		JLabel pwdjla = new JLabel(" 密码:");
		JTextField nameField = new JTextField();
		JPasswordField pwdField = new JPasswordField();
		JCheckBox jckb1 = new JCheckBox("记住密码");//复选框
		JCheckBox jckb2 = new JCheckBox("自动登录");
		JButton btn = new JButton("登录"); 	//按钮
		
**此时仅仅是创建了新的对象,并没有将各组件加入到窗体上**
	给组件添加属性
```java
		Dimension dimension = new Dimension(250,30); //设置一个尺寸对象,方便下面调用
		nameField.setPreferredSize(dimension);
		pwdField.setPreferredSize(dimension);

3 将组件添加至窗体

将组件对象添加到对应的容器(窗体对象)对象上
使用add函数

		jf.add(imgjla);
		jf.add(namejla);
		jf.add(nameField);
		jf.add(pwdjla);
		jf.add(pwdField);
		jf.add(jckb1);
		jf.add(jckb2);
		jf.add(btn);
		jf.setVisible(true);//可视化 ,界面显示的关键一环

此时界面已经布置完毕,可以运行

4、监听器的添加方式

基本要素
(1)事件:用户对组件的一个操作,称之为一个事件
(2)事件源:发生事件的组件就是事件源
(3)事件监听器(处理器):监听并负责处理事件的方法
监听器模式:事件源注册监听器之后,当事件源触发事件,监听器就可以回调事件对象的方法;更形象地说,监听者模式是基于:注册-回调的事件/消息通知处理模式,就是被监控者将消息通知给所有监控者。

下面以QQ用户登录为例
需用到的API文档

import java.awt.event.ActionEvent;//事件
import java.awt.event.ActionListener;
import javax.swing.JTextField;

监听器需要额外创建一个类来使用

public class LoginUIListener implements ActionListener {				//implement是关键字
	JTextField nameField;
	//当被监听的按钮 被点击时 自动响应 
	public void actionPerformed(ActionEvent e) {		
		String btnstr = e.getActionCommand();		// e  得到按钮上的字符串 	
		if (btnstr.equals("登录")) {				// 字符串比对函数  
			if ("123456".equals(nameField.getText())&&"789".equals(pwdField.getText()) ) }
		//用户在输入框中输入的账号,getText获得文本
									}
		}
	

新界面的显示需要在监听器的界面下实例化并被调用

在窗体可视化后加入监听器代码进行数据传输

		LoginUIListener lul = new LoginUIListener();//实例化实现了监听器接口的类 
		btn.addActionListener(lul);//按钮对象添加动作监听器;此处属于方法
		lul.nameField = nameField;  //将数据传输到监听器类中判断
		lul.pwdField = pwdField;

点击登录即可进入新界面

结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值