Swing组件集合的事件处理(二)(二)

2014-11-24 00:14:23 · 作者: · 浏览: 1
ouseEvent)现在我们不需要手动获取标识并与掩码进行对比,我们可以请求SwingUtilities来完这些工作,如下所示:

if (SwingUtilities.isMiddleMouseButton(mouseEvent)) {
System.out.println("Middle button released.");
}这可以使得我们的代码变得更容易阅读与维护。

列表2-2包含了一个更新的ButtonSample,在其中添加了另一个监听器来检测哪一个鼠标按钮被按下。

/**
*
*/
package swingstudy.ch02;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

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

/**
* @author lenovo
*
*/
public class ButtonSample2 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Runnable runner = new Runnable() {
public void run() {
JFrame frame = new JFrame("Button Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton button = new JButton("Select Me");

ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.out.println("I was selected");
}
};

MouseListener mouseListener = new MouseAdapter() {
public void mousePressed(MouseEvent event) {
int modifiers = event.getModifiers();

if((modifiers & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {
System.out.println("Left button is pressed");
}

if((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {
System.out.println("Middle button is pressed");
}

if((modifiers & InputEvent.BU