Tag: mouse

尝试通过jni调用从java更改Windows鼠标光标图标

在我的java应用程序中,即时尝试使用具有透明度的argb 32位bmp文件更改鼠标光标。 我想进行jni调用以从Windows更改它,因为在java中更改光标会给我一个非常糟糕的鼠标光标(所有透明度都是0x00或0xFF) 目前我正在尝试使用函数SetClassLong作为参数: 来自java的hWnd(我得到了它的方法http://download.oracle.com/javase/1.3/docs/guide/awt/AWT_Native_Interface.html ) GCL_HCURSOR 和一个由原始argb 32位bmp缓冲区构成的游标 这段代码适用于示例win32 atl windows测试程序: HBITMAP hBitmap = (HBITMAP)CreateBitmap(32, 32, 1, 32, pRawBmpData); BITMAP bmp; ::GetObject(hBitmap, sizeof(BITMAP), &bmp); HBITMAP hMask = ::CreateCompatibleBitmap(::GetDC(NULL), bmp.bmWidth, bmp.bmHeight); ICONINFO ii = {0}; ii.fIcon = FALSE; ii.hbmColor = hBitmap; ii.hbmMask = hMask; ii.xHotspot = 0; ii.yHotspot = 0; HCURSOR cursor = ::CreateIconIndirect(&ii); SetCursor(cursor); […]

LWJGL GLFW光标输入减慢程序速度

我使用GLFW 3.3在LWJGL 3中创建了一个程序,其中我使用Cursor回调来获取光标的位置。 但是当快速移动光标时,帧速率会下降。 没有光标回调一切正常。 左边的数字是每秒的帧数,右边的数字表示调用Cursorcallback的次数: 30 823 7 502 77 892 2110 44 3557 0 119 275 17 2069 14 1279 1 841 588 27 692 0 如果光标正常,隐藏或禁用,结果不会改变。 我也尝试使用glfwSwapInterval(1)和glfwWaitEvents()代替glfwPollEvents() glfwGetVersionString()返回“3.3.0 Win32 WGL EGL VisualC DLL”。 有谁为什么这会降低性能以及如何解决这个问题?

当鼠标在JFrame内移动时,Swing Timer停止调用actionPerformed()

如果我在javax.swing.JFrame移动鼠标, javax.swing.Timer停止调用actionPerformed()方法,直到鼠标停止移动。 只有当我用我的Rocket Kone XTD鼠标移动光标时才会发生这种情况。 当我使用我的触控板时,一切都很好。 我该如何解决? 我正在使用macOS Sierra。 这是我的代码: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.Timer; public class Mouse { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(500, 500); frame.setVisible(true); Timer timer = new Timer(10, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println(“foo”); } }); timer.start(); } […]

当鼠标光标hover在JButton上时,更改布尔值

当你将鼠标hover在我的按钮上时,它会从黑色变为灰色,我使用setRolloverIcon(ImageIcon);执行此操作setRolloverIcon(ImageIcon); 。 当鼠标光标hover在JButton上时,是否有任何简单的方法可以使布尔值等于true,或者我是否必须使用MouseMotionListener来检查鼠标光标的位置?

hoverJava时的图像更改

我知道item1.setToolTipText(“This shows up on mouse hover”); 如果鼠标hover在文本上,将允许显示文本。 我想知道我是否可以在鼠标hover时更改图像? 提前致谢。

如何在Swing应用程序中使用后退和前进鼠标按钮?

问题很简单。 我找不到关于这个问题的很多链接,我找到的那些似乎没有避免真正的问题。 我的应用程序必须处理后退和前进鼠标按钮的鼠标按下/释放事件。 我怎么处理这个? 编辑:这是使用JDK 1.6 。

如何在Java中处理多个鼠标输入?

我的一个朋友让我实现了一个蓝色和红色指针,代表两个独立鼠标的输入,以加快混音台方案的实时音频混合。 我很乐意,但我认为这是一个好主意,我不知道从哪里开始寻找可能的解决方案。 我应该从哪里开始研究实现双鼠标输入的可行方法?

按下鼠标时更改mouseListener

我正在开发Java游戏,并面临以下挑战。 我有2个JPanels ,需要在视觉JPanels形状从一个JPanel拖动到另一个JPanel 。 我使用JFrame的GlassPane工作了。 当我按下鼠标拖动形状时, GlassPane激活并将形状传递给glassPane。 因此,您需要将mousePressed状态从JPanels mouseAdapter到glassPanes mouseAdapter 。 我通过使用Robot类来解决这个问题,它在glassPane被激活后模拟了另一个mousePressed事件。 现在问题来了,这个解决方法只适用于Windows而不适用于mac osx,在osx上,只要按下鼠标按钮,鼠标就会与JPanels mouseAdapter保持对话。 那么有人知道如何在按下鼠标按钮的同时以适当的方式将mousePressed状态从一个mouseAdapter到另一个mouseAdapter吗? (释放按钮并再次按下它不是一个选项,因为这会破坏拖动的目的。)

哪个鼠标键是中间的?

我目前正在开发一个Java程序,只有当用户点击左键和右键单击按钮时才能触发某个事件。 由于它有点不同寻常,我决定先测试一下。 这里是: import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JLabel; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class GUI { private JFrame mainframe; private JButton thebutton; private boolean left_is_pressed; private boolean right_is_pressed; private JLabel notifier; public GUI () { thebutton = new JButton (“Double Press Me”); addListen (); thebutton.setBounds (20, 20, 150, 40); notifier = new JLabel (” […]

JScrollPane – 相对于鼠标位置进行缩放

我需要在放大图像时计算视口的新位置。 UI构建如下: ImagePanel绘制图像 ImagePanelWrapper是围绕imagePanel的JPanel JScrollPane包含ImagePanelWrapper 放大或缩小时,ImagePanel的缩放系数会发生变化,并且会重新计算ImagePanel的首选大小。 因此,即使ImagePanel停留在相同的视口点,此面板上的图像也会移动。 当用户按住CTRL并使用鼠标滚轮时,将调用以下方法。 给定的点是MouseWheelListener提供的光标位置。 通过这些方法的function,当放大或缩小时,图像已经停留在相同的左上角位置。 问题是我只是想弄清楚如何相对于鼠标移动,例如Paint.NET。 有任何想法吗? /** * */ public void zoomOut(Point point) { this.imagePanel.setZoom(this.imagePanel.getZoom() * 0.9f); Point pos = this.getViewport().getViewPosition(); int newX = (int) (pos.x * 0.9f); int newY = (int) (pos.y * 0.9f); this.getViewport().setViewPosition(new Point(newX, newY)); this.imagePanel.revalidate(); this.imagePanel.repaint(); } /** * */ public void zoomIn(Point point) { […]