为了账号安全,请及时绑定邮箱和手机立即绑定

Java等待游标显示问题

Java等待游标显示问题

LEATH 2019-07-11 10:54:16
Java等待游标显示问题在应用程序中显示等待游标时出现问题。每当鼠标位于定义自己游标的面板上方时,等待游标就不会出现。如果面板不更改游标,则会出现等待游标。我正在附上一个SSCE,以准确地解释我的问题。public class BusyCursorTest extends javax.swing.JFrame {public BusyCursorTest() {     javax.swing.JMenuBar menuBar = new javax.swing.JMenuBar();     javax.swing.JMenu menu = new javax.swing.JMenu("Menu");     javax.swing.JMenuItem wait1 = new javax.swing.JMenuItem("Wait 100 ms");     javax.swing.JMenuItem wait2 = new javax.swing.JMenuItem("Wait 250 ms");     javax.swing.JMenuItem wait3 = new javax.swing.JMenuItem("Wait 500 ms");     javax.swing.JMenuItem wait4 = new javax.swing.JMenuItem("Wait 1000 ms");     menu.add(wait1);     menu.add(wait2);     menu.add(wait3);     menu.add(wait4);     menuBar.add(menu);     setJMenuBar(menuBar);     wait1.addActionListener(getActionListener(this, delayActionListener(100)));     wait2.addActionListener(getActionListener(this, delayActionListener(250)));     wait3.addActionListener(getActionListener(this, delayActionListener(500)));     wait4.addActionListener(getActionListener(this, delayActionListener(1000)));     cursorPanel = new javax.swing.JPanel();     cursorPanel.addMouseListener(new java.awt.event.MouseAdapter() {            });         public void actionPerformed(java.awt.event.ActionEvent ae) {             try {                 Thread.sleep(delay);             } catch (InterruptedException e) {             }         }     };                      return actionListener;}private javax.swing.JPanel cursorPanel = null;public static java.awt.Cursor originalCursor = null;     public static final int DELAY_MS = 250;}运行附加的SSCE。当选择第一个选项卡(“默认”)时,单击1000 ms菜单项将显示繁忙的光标。当选择第二个选项卡(“游标更改”)时,单击1000 ms菜单项不会显示繁忙的游标。我该如何解决这个问题?我强烈希望我的代码不需要考虑到任何一个面板,因为这对我来说是非常困难的,因为我很难跟踪哪些面板可能处于最前沿。此外,由于鼠标单击,事件并不总是生成。建议的解决方法是什么,以便我可以在顶级容器中修改行为?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 419 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信