Tag: mouselistener

MouseListener需要与许多对象Java进行交互

我在屏幕上绘制了大量图像,我需要检测何时点击一个。 我遇到的问题是不同的类绘制不同的图像。 我需要点击鼠标才能与某些类进行交互。 我怎样才能做到这一点? 我应该创建自己的MouseHandler类吗? 这会如何与某些课程对话? 先感谢您

获取gridlayout上按钮的位置

如何获得带有gridlayout的点击按钮的位置(我的意思是行和列)? public void init(final Container pane) { JPanel controls = new JPanel(); int size = (int) Math.sqrt(puzzle.getSize() + 1); controls.setLayout(new GridLayout(size, size)); for (int i = 0; i < puzzle.getSize(); i++) { int k = puzzle.getListItem(i); if (k == puzzle.getEmptyFlag()) controls.add(new JLabel("")); else { JButton jb = new JButton(String.valueOf(k)); jb.addMouseListener(new MouseAdapter() { @Override public void […]

拖放以在JPanel上移动JTextArea

我希望能够单击JTextArea并将其拖动到我的JPanel周围。 我不确定这样做的方法。 我想要做的是在拖动时更改JTextArea的x,y坐标,我不是在另一个上面或下面拖动JTextArea 。 就在屏幕上,类似于在Microsoft PowerPoint等程序中移动文本框 我能想到的唯一方法是使用MouseListener但我想知道除了检测JTextArea上的hover/按下/拖动之外是否有更简单的方法来实现它。 关于如何开始的任何想法? import java.awt.Color; import java.awt.Cursor; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JTextArea; public class UMLEditor { public static void main(String[] args) { JFrame frame = new UMLWindow(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(30, 30, 1000, 700); frame.getContentPane().setBackground(Color.white); […]

JFrame – 使用JComponent和MouseListener单击鼠标

有2个class – public class MainClass { public static void main(String[] args) { JFrame frame = new JFrame(); …. Component mouseClick = new MyComponent() ; frame.setVisible(true); } public class MyComponent extends JComponent implements MouseListener { @Override public void mouseClicked(MouseEvent arg0) { System.out.println(“here was a click ! “); } … } 我试图在frame上设置一个鼠标单击的监听器,但是当我运行它然后按鼠标单击没有任何反应。 如何使其工作?

如何使用MouseListener查找网格中的特定单元格

我正在尝试创建一个由单元格组成的10 x 10网格的Java游戏。 网格看起来像这样: public class Grid extends JPanel implements MouseListener { public static final int GRID_SIZE = 10; public Grid() { setPreferredSize(new Dimension(300, 300)); setLayout(new GridLayout(GRID_SIZE, GRID_SIZE)); for (int x = 0; x < GRID_SIZE; x++) for (int y = 0; y < GRID_SIZE; y++) add(new Cell(x, y)); addMouseListener(this); } // All Mouse Listener […]

创建一个Mousebirdner到Javafx矩形

我想在我的javafx矩形上创建一个mouselistner。 我的想法是当按下它时矩形必须改变颜色? 有谁知道如何在Javafx中为形状添加一个列表器? 到目前为止,我试过这个: final Rectangle rect = new Rectangle(); rect.setOnMouseClicked(new EventHandler() { @Override public void handle(MouseEvent event) { // TODO Auto-generated method stub } }); 但是我得到一个错误说 对于Rectangle类型,方法setOnMouseClicked(new EventHandler(){})是未定义的 升技更多信息: 我对rect的唯一选择是这些: rect.add() rect.contains() rect.grow(); rect.hashcode() rect.intersection(); 还有一些不重要的。 我正在使用的导入如下: import com.sun.glass.events.MouseEvent; import com.sun.javafx.geom.Rectangle; import com.sun.javafx.geom.Shape;

JColorChooser:在“色板”面板中保存/恢复最近的颜色

我在应用程序的不同位置使用JColorchooser 。 面板的多个实例可以调用JColorChooser。 选择器中的“色板”面板具有“最近”颜色区域 ,该区域仅在JColorChooser的每个实例中持续存在。 我希望(a)在我的应用程序中的所有选择器中具有相同的“最近”颜色 ,以及(b)将颜色保存到磁盘,以便这些颜色能够在应用程序中保持紧密和重新启动。 (至少(a)可以通过在整个应用程序中使用相同的单个选择器实例来解决,但是这很麻烦,因为我需要非常小心附加的changelisteners,并在各种对话框中添加/删除选择器面板。) 我没有找到任何让我在选择器面板中设置(恢复)这些“最近”颜色的方法。 所以对我来说,实现这一目标的唯一方法似乎是: 序列化并保存/恢复整个选择器(选择器面板?)或 从头开始创建我自己的选择器面板 这是正确的,还是我错过了什么? BTW:我也想在选择器中检测到双击,但似乎很难找到合适的地方来连接我的鼠标监听器。 我真的需要深入了解选择器面板的内部结构吗? (不,它不能检测同一颜色的第二次单击,因为更改侦听器仅在单击其他颜色时才会触发。)

使用mouseDrag滚动时暂时禁用或阻止重新绘制JViewPort

我编写了一个如下定义的MouseListener ,以便我可以移动JButton来重新排序JPanel的组件。 JPanel位于JScrollPane因此当添加多个组件时,可以滚动它们。 我遇到的问题是,当拖动组件并且鼠标离开滚动窗格/视口时,组件将快照回到它在JPanel位置,然后将在正确的位置绘制。 我认为这种行为是由于当我调用scrollRectToVisible()时,Viewport调用其子项的重绘 有没有办法可以防止这种情况发生? 请注意,我仅限于Java 5 倾听者 import java.awt.Component; import java.awt.Container; import java.awt.MouseInfo; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.MouseEvent; import javax.swing.JViewport; import javax.swing.SwingUtilities; import javax.swing.event.MouseInputAdapter; public class DragListener extends MouseInputAdapter { private Point location; private MouseEvent pressed; private MouseEvent dragged; private MouseEvent dropped; @Override public void mousePressed(MouseEvent me) { pressed = me; } […]

将鼠标侦听器添加到java中的矩形

正如标题所示,我试图在窗口上添加一个基本形状的动作监听器。 我想知道这是否可能? 我尝试添加侦听器时遇到错误。 public static void main(String args[]) { JFrame frame = new Main(); frame.setSize(300, 200); frame.setVisible(true); frame.setBackground(Color.BLUE); } Rectangle2D rect = new Rectangle2D.Double(60, 70, 120, 80); public void paint(Graphics g) { Graphics2D g1 = (Graphics2D)g; g1.draw(rect); g1.setPaint(Color.yellow); g1.fill(rect); } Handlerclass handle = new Handlerclass(); rect.addMouseListener(handle); public class Handlerclass implements MouseListener{ public void mouseClicked (MouseEvent […]

如何在JScrollPane中获取图像的X和Y位置

我正在尝试为2D RPG制作地图编辑器,而我目前正在尝试做的事情(将地块放置在地面上)是有一个带有JLabel的JScrollPane(其中有一个图像)和一个附加的鼠标侦听器到JScrollPane来确定图像的X和Y位置。 我遇到的问题是它没有得到图像X和Y位置,而是JScrollPanes X和Y位置。 所以我有一个JScrollPane附加到一个512×4928的图像,我附加了一个鼠标监听器。 当我尝试获取Y位置时问题就存在了,因为JScrollPane是一个单独的对象,它获得了JScrollPane JScrollPanes大小的X和Y,无论图像位于何处,它都将永远不会返回大于600。 我能以任何方式使这项工作? inheritance守守则 public void loadMapTileImage(){ try { image = ImageIO.read(getClass().getResource(“data/misc/tiledata.png”)); image = image.getSubimage(0, 0, 512, 4928); } catch (IOException e) { e.printStackTrace(); } ImageIcon i = new ImageIcon(image); MapEditorGlobalObjects.mapTileScroll = new JScrollPane(new JLabel(i)); } mapTileScroller.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent arg0) { MapEditorGlobalObjects.checkIfDebugging(“Mouse Released Location X = […]