java swing图形界面捕获_Java 生成图形界面---事件监听

事件监听:捕获在事件源对象上发生的动作。如:点击,进入,离开……

事件监听需要用事件监听方法:

在界面上的事件源可以调用事件监听方法。

事件监听方法可以捕获事件源对象上发生的动作,然后收集事件源对象的信息和动作信息,然后将这些信息交给参数对象处理。

事件监听方法:

addActionListener(ActionListener l)---捕获类似按钮组件上的鼠标点击和捕获类似输入框组件上键盘回车动作;

addMouseListener(MouseListener l)---鼠标动作监听方法

事件监听方法的参数对象就是事件接口,可以根据在组件上动作来调用相应的方法,得到相应的反馈。

事件接口:

ActionListener 动作事件接口

MouseListener 鼠标事件接口

例:在登录界面上输入账号和密码,然后点击登录按钮,对输入的账号和密码进行验证,

如果正确则显示一个新窗体,然后关闭登录窗体;

如果不正确则显示一个错误窗体。

1,定义事件处理类jianting,该类实现ActionListener动作事件接口,重写接口中的所有抽象方法(用不上的方法内容可以为空)。

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

public class jianting implements ActionListener {//实现ActionListener接口

private JFrame jf;

private JTextField jt;

private JPasswordField jp;

public jianting (JFrame jf,JTextField jt,JPasswordField jp)//类的构造函数

{

this.jf=jf;

this.jt=jt;

this.jp=jp;

}

public void actionPerformed(ActionEvent e) {//重写接口内的抽象方法:如果按钮组件上鼠标点击了,则调用此方法

System.out.println(e.getActionCommand());//得到事件源上的信息

//获取输入框中输入的账号和密码

String s="123456";

String l="123456";

if(s.equals(jt.getText())&&l.equals(jp.getText()))//如果输入正确

{

JFrame frame=new JFrame("新界面");//生成新的界面

frame.setSize(500,500);

frame.setDefaultCloseOperation(3);

frame.setLocationRelativeTo(null);

frame.setVisible(true);

jf.dispose();

}

else//如果输入错误

{

JFrame frame=new JFrame("错误");//生成错误显示的界面

frame.setSize(500,500);

frame.setDefaultCloseOperation(3);

frame.setLocationRelativeTo(null);

JLabel jl=new JLabel("账号或密码错误!");

Font font =new Font("ok",3,30);

jl.setFont(font);

frame.add(jl);

frame.setVisible(true);

}

}

}

2.生成登陆界面后,实例化事件处理类jianting的对象,对象名jt。给事件源登录按钮对象,添加addActionListener()动作监听方法,指定监听方法的事件处理类对象为jt。

import java.awt.Dimension;

import java.awt.FlowLayout;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

public class denglu {

public static void main(String[] args) {

denglu flie=new denglu();

}

public void show(){

JFrame frame = new JFrame();

frame.setTitle("登录界面");

frame.setSize(400,600);

frame.setDefaultCloseOperation(3);

frame.setLocationRelativeTo(null);

FlowLayout lay=new FlowLayout();

frame.setLayout(lay);

ImageIcon im=new ImageIcon("E:\\好玩\\34569892.jpeg");

JLabel jl=new JLabel(im);

Dimension jl1=new Dimension(400,250);

jl.setPreferredSize(jl1);

frame.add(jl);

JLabel jla=new JLabel("账号:");

frame.add(jla);

JTextField jtf=new JTextField();

Dimension di=new Dimension(300,50);

jtf.setPreferredSize(di);

frame.add(jtf);

JLabel jlab=new JLabel("密码:");

frame.add(jlab);

JPasswordField jp=new JPasswordField();

Dimension dim=new Dimension(300,50);

jp.setPreferredSize(dim);

frame.add(jp);

JButton jb=new JButton("登陆");

Dimension dime=new Dimension(100,60);

jb.setPreferredSize(dime);

frame.add(jb);

frame.setVisible(true);

jianting jt= new jianting(frame,jtf,jp);//实例化事件处理类jianting的对象,对象名jt

jb.addActionListener(jt);//事件源按钮对象调用addActionListener()动作监听方法,指定监听方法的事件处理类对象为jt。

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值