`
dajian
  • 浏览: 114659 次
  • 性别: Icon_minigender_1
  • 来自: 白云
社区版块
存档分类
最新评论

swing中监听鼠标左右键的方法

阅读更多
虽然没有明确的函数说MouseEvent来自左键还是右键还是中键,但一般来说,有两种方法来判断:
1.用MouseEvent.getButton(),其会返回一个常数,即java.awt.event.MouseEvent中的BUTTON1(1:左键),BUTTON2(2:中键),BUTTON3(3:右键)。
2.用mouseevent.getModifiers(),也会返回一个常数,即4:right, 16:left

测试代码如下:

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

public class Button{
public Button(){
JFrame f=new JFrame("test right button");
JButton b=new JButton("click me");
b.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
JButton s=(JButton)e.getSource();
if(e.getButton()==java.awt.event.MouseEvent.BUTTON1) s.setText("left");
else if(e.getButton()==java.awt.event.MouseEvent.BUTTON2) s.setText("middle");
else if(e.getButton()==java.awt.event.MouseEvent.BUTTON3) s.setText("right");
}
}
);

f.getContentPane().add(b);
f.pack();
f.setVisible(true);

f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args){
new Button();
}
}
分享到:
评论

相关推荐

    java swing 事件处理小项目(推箱子)

    在这个推箱子项目中,事件处理可能是用来响应玩家的移动指令,例如键盘上的上下左右键。你需要为JFrame或JPanel等组件添加KeyListener,这样当玩家按下按键时,对应的键盘事件会被捕获并处理。事件处理函数会更新...

    飞机大战基于Java中swing库进行开发

    键盘事件监听器(KeyListener)用于捕捉用户按下、释放或键入特定键时的事件,例如控制飞机上下左右移动。而鼠标事件监听器(MouseListener)则用于处理鼠标点击、移动等操作,例如瞄准和射击。通过这些监听器,...

    Swing 多选栏控件

    在多选模式下,用户可以用Ctrl或Shift键配合鼠标进行多选。 2. **JTable**:`JTable`是一个更复杂的组件,它不仅支持多选,还能展示数据的表格形式。`JTable`的多选通常通过`DefaultRowSorter`和`...

    JavaSwing图片查看器源码

    ImageIO.read()方法可以用来从文件中读取图像。 6. **图片格式支持**:Java的ImageIO支持多种图片格式,如JPEG、PNG等。开发者需要确保程序能够正确识别并加载这些格式的图片。 7. **图像缩放**:如果图片大小超过...

    java swing 小游戏 俄罗斯方块

    例如,键盘事件监听器可以用于控制方块的移动和旋转,鼠标事件监听器可以用于暂停或重启游戏。 3. **图形绘制**:Java Swing提供Graphics类和Graphics2D类,用于在组件上进行绘制。俄罗斯方块的各个方块、游戏背景...

    java swing拼图游戏

    7. 用户交互:Swing 还支持键盘快捷键,例如,可以设置上下左右箭头键来移动拼图块,增强用户体验。此外,还可以添加重启游戏或打开新图片的功能,这通常通过 `JButton` 实现,配合 `ActionListener` 处理点击事件。...

    基于Java中的swing类的图形化飞机游戏的开发练习.zip

    在Java Swing中,事件处理是通过事件监听器来实现的。例如,游戏的开始、暂停、移动、射击等动作可能都有对应的事件监听器,当用户触发这些操作时,监听器会捕获事件并执行相应的代码。 3. **多线程**: 游戏通常...

    基于java swing的2048小游戏

    3. **Key Bindings**: 为了响应玩家的键盘输入,开发者通常会使用Key Bindings绑定特定的键盘事件,比如上下左右箭头键控制游戏板的移动。 4. **GridLayout**: 2048游戏的棋盘通常是4x4的网格布局,开发者可以使用...

    2048小游戏,Java,Swing.zip

    在Java编程语言中,我们可以利用Swing库来构建2048游戏的用户界面。接下来,我们将深入探讨如何使用Java和Swing来实现这个游戏。 一、Java基础与Swing库 Java是一种面向对象的编程语言,以其跨平台性和丰富的类库...

    JList 上下左右拖动

    要实现上下左右拖动,我们需要使用`MouseMotionListener`来监听鼠标移动事件。`JList`本身并不直接支持这样的操作,但我们可以模拟这个行为。以下是一个简单的实现: ```java list.addMouseMotionListener(new ...

    java开发俄罗斯方块单机版

    1. 键盘事件:通过KeyListener监听键盘输入,如左右箭头控制方块移动,下箭头加速下落,空格键立即落地。 2. 鼠标事件:虽然俄罗斯方块主要依赖键盘操作,但可以在游戏暂停/继续、设置等场景中使用鼠标事件。 五、...

    用Java实现经典小游戏:俄罗斯方块,可用键盘操作,也可用鼠标点击进行操作.zip

    开发者可能创建了一个实现了`KeyListener`的类,并将其添加到游戏窗口,以便在用户按下特定键时响应,如左右箭头键控制方块左右移动,下箭头键加速下落,上箭头键旋转方块。 3. **鼠标点击操作**: - 鼠标点击事件...

    java弹球游戏.zip

    `java.awt.event`包提供了各种监听器接口,如`KeyListener`用于监听键盘事件,`MouseListener`和`MouseMotionListener`用于监听鼠标事件。 4. **组件布局**:Java GUI中,组件的摆放位置由布局管理器控制。AWT中的...

    Java课程设计包括运用程序,源代码,图片

    描述中的"鼠标控制人物的移动"是指在GUI中,我们可以通过监听鼠标事件来实现游戏元素的交互。Java中的MouseListener和MouseMotionListener接口用于处理鼠标事件,比如鼠标的按下、释放、移动等。例如,当用户点击...

    Java游戏2048

    每个类都有自己的属性和方法,例如棋盘类可能包含二维数组表示游戏状态,用户操作类处理上下左右的滑动事件。 2. **图形用户界面(GUI)**:2048游戏需要一个用户友好的界面,这通常通过Java Swing或JavaFX库实现。...

    实训八GUI编程练习.doc

    最后,实训的交互部分要求用户能通过鼠标点击标签并使用键盘的上下左右键来调整字母顺序。这涉及到对键盘事件的监听,你需要在`SpellingWordFrame`类中实现`KeyListener`接口,并处理`keyPressed(KeyEvent e)`方法。...

    优秀资料(2021-2022年收藏)实训八GUI编程练习.doc

    在这个实训项目中,学生将学习和实践GUI编程,特别是如何使用Java AWT和Swing库来创建用户界面。实训目标集中在事件监听机制、ActionEvent事件处理以及TextEvent事件处理上,这些都是GUI编程中的核心概念。 首先,...

    java实现的俄罗斯方块

    在俄罗斯方块游戏中,GUI 包括游戏板、控制面板、得分显示等元素,用户可以通过鼠标或键盘进行操作。 3. **事件处理**: Swing 使用事件监听器模型来处理用户的输入。例如,当用户按下键盘上的方向键时,程序需要...

    java词汇解释

    面向对象是一种编程范式,它通过将数据和处理数据的方法封装在对象中来模拟现实世界中的实体。面向对象编程(OOP)利用类、对象等概念来简化软件开发过程,并增强代码的可重用性和灵活性。 #### OOP (Object-...

    JAVA 实现《接月饼小游戏》游戏-全部源码

    5. 监听鼠标的左右键,用来控制篮子左右移动 6. 设计积分系统 7. 将resource文件夹设为resource(Project Manage中可以设置),因为要用里面的图片 需要技术指导,写项目程序,等更多服务请加微信xiaoxuzhu01联系博...

Global site tag (gtag.js) - Google Analytics