`
lushuaiyin
  • 浏览: 676045 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java swing 单击事件mouseClicked与一般事件actionPerformed区别

 
阅读更多

//鼠标单击事件无论什么时候都监听,即使按钮已经不能用了,事件依然走;

//一般事件,在设置按钮不可用后就不在走了

例子很能说明问题:

package eeeee;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;

//VS4E -- DO NOT REMOVE THIS LINE!
public class bbbb extends JFrame {

	private static final long serialVersionUID = 1L;
	private JButton jButton0;
	private JButton jButton1;
	private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
	public bbbb() {
		initComponents();
	}

	private void initComponents() {
		setLayout(new GroupLayout());
		add(getJButton0(), new Constraints(new Leading(52, 10, 10), new Leading(39, 10, 10)));
		add(getJButton1(), new Constraints(new Leading(195, 10, 10), new Leading(39, 12, 12)));
		setSize(320, 240);
	}

	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setText("jButton1");
			jButton1.addActionListener(new ActionListener() {
	
				public void actionPerformed(ActionEvent event) {
					jButton1ActionActionPerformed(event);
				}
			});
		}
		return jButton1;
	}

	private JButton getJButton0() {
		if (jButton0 == null) {
			jButton0 = new JButton();
			jButton0.setText("jButton0");
			jButton0.addMouseListener(new MouseAdapter() {
	
				public void mouseClicked(MouseEvent event) {
					jButton0MouseMouseClicked(event);
				}
			});
		}
		return jButton0;
	}

	private static void installLnF() {
		try {
			String lnfClassname = PREFERRED_LOOK_AND_FEEL;
			if (lnfClassname == null)
				lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
			UIManager.setLookAndFeel(lnfClassname);
		} catch (Exception e) {
			System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
					+ " on this platform:" + e.getMessage());
		}
	}

	/**
	 * Main entry of the class.
	 * Note: This class is only created so that you can easily preview the result at runtime.
	 * It is not expected to be managed by the designer.
	 * You can modify it as you like.
	 */
	public static void main(String[] args) {
		installLnF();
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				bbbb frame = new bbbb();
				frame.setDefaultCloseOperation(bbbb.EXIT_ON_CLOSE);
				frame.setTitle("bbbb");
				frame.getContentPane().setPreferredSize(frame.getSize());
				frame.pack();
				frame.setLocationRelativeTo(null);
				frame.setVisible(true);
			}
		});
	}
//00
	private void jButton0MouseMouseClicked(MouseEvent event) {
		jButton0.setEnabled(false);
		System.out.println("click 00");
	}
//11
	private void jButton1ActionActionPerformed(ActionEvent event) {
		jButton1.setEnabled(false);
		System.out.println("click 1111");
	}

}


点击button0后,它设置成不可用,但它依然响应事件(里面的打印输出了)

而点击button1后,设置它不可用,再点击它,就没反应了,说明真的不可用了。

从这里我们直观的看出两种事件的区别,更深的道理我就不说了,嘿嘿

分享到:
评论

相关推荐

    华容道基于Java swing开发

    import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event....

    java事件处理机制ppt

    1.event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event source:具体的接受事件的实体,比如说,你点击一个button,那么button就是...

    java认证所有课程

    一般地,如果你想写一个程序,它基于一个事件而执行多个动作,把那些行为编写到处理器的方法里即可。然而,有时一个程序的设计要求同一程序的多个不相关的部分对于同一事件作出反应。这种情况是有可能的,例如,将一...

    java项目之教务管理系统

    public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) {// 鼠标双击 tray.remove(trayIcon); setVisible(true); // 设置窗口全屏 setExtendedState(JFrame.MAXIMIZED_...

    用java编写的记事本,基本功能都实现了啊!

    import java.awt.BorderLayout; import java.awt.Container; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java....

    Java 2实用教程(第三版)实验指导与习题解答

    Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 ...

    Java五指棋

    Mouseclicked mouseclicked=new Mouseclicked(); MouseMoved mousemoved=new MouseMoved(); Menuitemclicked menuclicked=new Menuitemclicked(); //构造函数 public ChessMap(){ //改变系统默认字体 ...

    java多态作业

    java多态import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ComplexListener implements MouseMotionListener,MouseListener,ActionListener{ JFrame f; JTextArea tf; JButton ...

    Java实现蜘蛛纸牌源码分享-入门学习

    import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PKCard extends JLabel implements MouseListener, MouseMotionListener{ //纸牌的位置 Point point = null; Point ...

    基于JAVA语言的计算器图形界面设计.doc

    //该类为主类创建数字按钮对象 class NumMouseListener implements MouseListener{ public void mouseClicked(MouseEvent e) { String num = ((Button)e.getSource()).getLabel().trim(); if(ary[1] == null) { ary...

    JAVA实验通讯录-实验报告.pdf

    区分他们的方法同样是根据按钮标题的不同来区分,当 鼠标单击列表组件时,显示不同人员的联系信息,所以需要为列表组件添加鼠 标事件监听器。 算法分析 在实现功能时只用了简单的面向对象的设计方法,在处理多个按钮...

    swing蜘蛛纸牌

    import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PKCard extends JLabel implements MouseListener, MouseMotionListener{ //纸牌的位置 Point point = null; Point ...

    JAVA显示图像且用鼠标点击改变显示位置.rar_graphics java_java Applet_java applet p

    * 显示图像。...* 用 Applet 的方法 getImage() 产生图像Image * 用 Graphics 的方法 drawImage() 画出图像 * 在 paint() 方法中画图,或在鼠标事件侦听方法中画图 * 鼠标点击,产生 mouseClicked 事件

    java棋牌游戏开发.txt

    swing游戏开发 public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseClicked(MouseEvent e) { if(e....

    java的小程序

    import java.util.Scanner; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.imageio.*; public class Jsq{ public static void main(String [] as){ new JsqFrame(); } } ...

    五子棋java编写的,有点残,如果有意可以改改

    import javax.swing.*; import java.awt.*; import java.awt.event.*; class ChessPanel extends JPanel{ private int space=20; private int grids=30; private int radius=space/2; private int[][]...

    程序代码666

    通常大部分应用程序只对鼠标点击事件感兴趣,而对鼠标移动及拖动并不感兴趣,但是鼠标移动及拖动事件又经常发生,因此,鼠标移动与拖动事件定义在一个MouseMotionListener接口中。 --------------------- 作者:样...

    旅店管理系统界面-手工书写

    public void mouseClicked(MouseEvent arg0) {} public void mouseEntered(MouseEvent arg0) {} public void mouseExited(MouseEvent arg0) {} public void mouseReleased(MouseEvent arg0) {} // 为jbuuton...

    java五子棋源码

    java编的五子棋 import java.util.*; import java.io.*; import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.*; class Gobang extends JFrame implements Runnable, ...

    j2se项目源码及介绍_飞鸽传书

    public void actionPerformed(ActionEvent e) 按钮事件。 private void addSendList(String ip) 向发送列表中添加向发送文件的列表。 public boolean isAllowSend(String ip,String path) 检测是否允许向某ip发送...

Global site tag (gtag.js) - Google Analytics