Tag: mouselistener

为什么我的JFrame不会响应鼠标和窗口的变化?

这是我的代码: import java.awt.event.*; import java.awt.*; import javax.swing.*; public class wind extends JFrame implements ComponentListener, MouseListener { JButton button; JLabel label; public wind() { // initialise instance variables setTitle(“My First Window!”); setSize(400, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); JPanel content = new JPanel(); content.setLayout(new FlowLayout()); content.addComponentListener(this); content.addMouseListener(this); label = new JLabel(“My First Window”); content.add(label); label.addComponentListener(this); button = new JButton(“Click […]

鼠标单击坐标始终为0

正如您所看到的,我在游戏中添加了一个鼠标监听器。 import java.awt.Graphics; import java.awt.image.BufferStrategy; public class Game implements Runnable { private Display display; public int width, height; public String title; private boolean running = false; private Thread thread; private BufferStrategy bs; private Graphics g; // States public static State gameState; // Input private InputManager inputManager; private MouseHandler mouseHandler; public Game(String title, int width, int […]

在触摸屏上获取Click Count Mouse Listener

我正在运行一个带有JList的简单JFrame。 我遇到了一个问题就像这个人> 触摸屏上的Java getClickCount 我知道它已经发布但没有答案。 jList.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { System.out.println(“MouseClick: “+e.getClickCount()); if (e.getClickCount() == 2) {

Java JPanel鼠标侦听器无法在其组件上运行

这个问题的解决方案是什么? 我在JPanel中添加了一个鼠标监听器,但该面板上充满了覆盖整个JPanel区域的按钮。 示例(伪)代码: Create JPanel Set to GridLayout Add 25 buttons (5×5 grid) Add MouseListener to JPanel 的MouseListener /的MouseMotionListener: onMouseMove { print out X,Y co-ords of mouse } 在我直接进入JPanel容器边缘之前,这些合作伙伴永远不会打印出来,因为按钮会阻挡其余部分。 如何让鼠标监听器在所有面板的组件上工作,而不必将监听器添加到每个组件 – 或者我是否应该将监听器添加到每个组件? 添加信息:我正在尝试为触摸屏系统添加触摸手势(滑动面板会导致操作发生)。 我对自己识别手势非常有信心,但我真的在寻找一种“更好”的方式,而不是为每个组件添加一个监听器副本(这对我来说更糟糕,因为组件正在发生变化)。 我打算尝试将它添加到glassPane而不是……(此刻getRootPane()给我NullPointerException) 编辑:我现在知道我正在尝试从不是根容器的JPanel getRootPane(),这就是为什么我得到一个null 。 我需要在主JFrame上执行此操作。 编辑2:好的,所以我已经完成了(添加玻璃窗格到主JFrame),起初我有一个问题,因为我没有这样做: myGlassPane.setVisible(true); 所以它似乎无法正常工作。 但是,一旦我这样做,我所要做的就是将opaque标志设置为false以使其透明 myGlassPane.setOpaque(false); 所以现在我将X,Y合作打印出按钮和所有内容,但按钮不起作用,因为它们上面有一个面板。

如何避免mouseExited在任何嵌套组件上触发

在我的代码中我有: 一个扩展JComponent的抽象类,它包含一些JTextField。 JTextFields不可编辑。 JComponent类实现MouseListener: – 当mouseEntered事件触发时,会向其添加边框。 – 当mouseExited事件触发边框时被删除。 – 当mouseClicked事件触发时,该组件的所有字段都设置为可编辑。 这应该以这种方式工作: 用户想要编辑字段。 他将鼠标hover在jComponent的任何一点上 在jComponent上绘制边框以突出显示它 用户单击和mouseClicked方法触发其中的东西。 问题是:当鼠标在任何JTextField上移动时,mouseExited会触发。 你会如何解决这个问题? 接下来是一个简单的类,它将向您展示一个窗口,其中包含一个jTextField,该窗口包含一个实现MouseListener的面板,其方式与上述方法非常类似。 不要考虑它是如何写的,它只是为了目的! public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run(){ int i=0; //mainWindow JFrame mainWindow = new JFrame(“MyFrame”); mainWindow.setLayout(new BorderLayout()); mainWindow.setMinimumSize(new Dimension(200,200)); JPanel viewPort = new JPanel(); final JTextField text = new JTextField(“SOME_RANDOM_TEXT”); text.setEditable(false); […]

听取键/鼠事件

是否可以在没有用户选择gui的情况下监听键和鼠标事件? 我想制作一个在没有gui的情况下在后台运行的程序,并响应用户交互,例如按ctrl-t 。

如何将MouseListener添加到框架

我想添加一个mouselistener到mt JFrame框架但是当我做frame.addMouseListener(this)时我得到一个错误,我不能在静态方法中使用它 我正在创建一个应用程序来检测鼠标点击,然后在int点击中显示它 码 import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Font; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JTextField; public class numberOfClicks implements MouseListener{ static int clicks = 0; @Override public void mouseClicked(MouseEvent e) { clicks++; } static JTextField text = new JTextField(); static String string = clicks+” Clicks”; static JFrame frame […]

使用TableCellEditor时,如何在鼠标单击位置获取组件?

我在表格单元格中使用自定义TableCellRenderer和多个JFormattedTextField 。 我使用与TableCellEditor相同的组件。 现在我需要知道用户单击的JFormattedTextField ,以及此字段中的位置(可以使用viewToModel完成)。 使用自定义TableCellEditor ,从鼠标单击中获取Point的唯一方法是CellEditor的isCellEditable(EventObject e)方法。 给出的Point在父坐标系中。 anEvent在调用组件坐标系中。 但是如何在单击的坐标上获取组件? 我尝试过使用findComponentAt(Point p)但它为我返回null 。 这是我测试过的一些代码: @Override public boolean isCellEditable(EventObject e) { if(e instanceof MouseEvent) { MouseEvent ev = (MouseEvent)e; Point p = ev.getPoint(); // gives strange values Point p3 = editor.getLocation(); // x: 0 y: 0 Point tp = ((JTable)e.getSource()).getLocation(); // these returns null Component […]

将MouseListener添加到面板

我正在尝试将鼠标操作添加到我的面板。 这是程序应该做的: 编写一个程序,允许用户通过三次鼠标按下指定三角形。 第一次鼠标按下后,画一个小点。 在第二次鼠标按下后,绘制一条连接前两点的线。 第三次鼠标按下后,绘制整个三角形。 第四次鼠标按下删除旧三角形并开始一个新三角形。

如何将MouseListeners添加到JList项目?

所以,我想要的是,当选择JList项目时,运行另一部分代码。 但我的问题是,如何为特定的JList项目实现MouseListeners ? 这是我的代码: public void launchFrame() { String selection1 = “”; String[]mainContents = {“Vehicles”,”Bikes/Bicycles”,”Boats”,”Houses”,”Businesses”,”Objects”,”Jobs”,”Ranks”,”Licenses”}; String[]selectionVehicles = {}; String[]selectionBikesBicycles = {}; String[]selectionBoats = {}; String[]selectionHouses = {}; String[]selectionBusinesses = {}; String[]selectionObjects = {}; String[]selectionJobs = {}; String[]selectionRanks = {}; String[]selectionLicenses = {}; JFrame f = new JFrame(“MTG SAMP Server Reference”); JList listAll = new JList(mainContents); […]