java 事件监听

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 事件监听相关的知识,希望对你有一定的参考价值。

给我一个Java事件监听的例子 比如 一个 Button 在 一个Panel里面的 然后 我需要 对Button 监听 在Panel外面 不处理 大概意思 就是这样, 谁 给我个例子谢了

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class LayoutTest extends JFrame implements ActionListener

JButton jb1 = null;
JButton jb2 = null;
JButton jb3 = null;
JButton jb4 = null;
JButton jb5 = null;

public LayoutTest()
this.setSize(200, 200);
this.setVisible(true);
this.setLayout(new BorderLayout());

jb1 = new JButton("up");
jb1.setActionCommand("up");
jb1.addActionListener(this);
jb2 = new JButton("down");
jb2.setActionCommand("down");
jb2.addActionListener(this);
jb3 = new JButton("left");
jb3.setActionCommand("left");
jb3.addActionListener(this);
jb4 = new JButton("right");
jb4.setActionCommand("right");
jb4.addActionListener(this);
jb5 = new JButton("center");
jb5.setActionCommand("center");
jb5.addActionListener(this);
// this.add(wp);
this.add("North", jb1);
this.add("South", jb2);
this.add("West", jb3);
this.add("East", jb4);
this.add("Center", jb5);


public static void main(String[] args)
// TODO Auto-generated method stub
LayoutTest lt = new LayoutTest();


@Override
public void actionPerformed(ActionEvent e)
// TODO Auto-generated method stub
if (e.getActionCommand().equals("up"))
System.out.println("You have clicked up!");
else if (e.getActionCommand().equals("down"))
System.out.println("You have clicked down!");
else if (e.getActionCommand().equals("left"))
System.out.println("You have clicked left!");
else if (e.getActionCommand().equals("right"))
System.out.println("You have clicked right");
else if (e.getActionCommand().equals("center"))
System.out.println("You have clicker center!");



参考技术A 顶一楼回答。
直接在写button的时候写监听有时候能把一个构造方法写上几千行,根本受不了。不如在界面写完之后用actionCommand来监听。
参考技术B 费解

java 事件监听 - 控件

java 事件监听

//事件监听
//事件监听,写了一个小案例,点击按钮改变面板的颜色。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Index extends JFrame implements ActionListener{
    
    //设置面板
    Wdmb wdmb = new Wdmb();
    
    //设置按钮
    JButton anniu1 = new JButton("黄色");
    JButton anniu2 = new JButton("红色");
    
    public static void main(String[] args) throws Exception{
        //实例化当前类
        Index index = new Index();
        
    }
    
    //自动执行
    public Index(){
        
        //设置面板的背景色
        wdmb.setBackground(Color.yellow);
        
        //添加到界面
        this.add(anniu1,BorderLayout.NORTH);
        this.add(anniu2,BorderLayout.SOUTH);
        this.add(wdmb);
        
        //添加监听事件
        anniu1.addActionListener(this);
        anniu1.setActionCommand("1");    //区别按钮识别码
        anniu2.addActionListener(this);
        anniu2.setActionCommand("2");    //区别按钮识别码
        
        this.setSize(500,500);
        this.setLocation(300,200);
        this.setTitle("绘图");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
    
    //ActionListener 的抽象方法
    //ActionEvent e 是固定的
    public void actionPerformed(ActionEvent e){
        
        //e.getActionCommand().equals("1") 判断“区别按钮识别码”是否相等
        
        if(e.getActionCommand().equals("1")){
            System.out.println("黄色按钮按下了");
            wdmb.setBackground(Color.yellow);
        }
        
        if(e.getActionCommand().equals("2")){
            System.out.println("红色按钮按下了");
            wdmb.setBackground(Color.red);
        }
    }
    
}

//面板方法
class Wdmb extends JPanel{
    
    //方法覆盖
    //JPanel自带方法,下面格式是固定的
    //paint 会在三种情况下自动被调用
    //1、启动程序  2、窗口大小发生变化时  3、运行repaint函数时
    public void paint(Graphics g){
        //覆盖父类的方法
        super.paint(g);
    }
}

 

以上是关于java 事件监听的主要内容,如果未能解决你的问题,请参考以下文章

Java事件监听器的Java事件监听器

什么是Java的接口,如何运用接口实现事件监听

Java实现一个简单的事件监听器

Java事件监听机制与观察者设计模式

Java中的事件监听机制

java监听器实现与原理