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菜单项不会显示繁忙的游标。我该如何解决这个问题?我强烈希望我的代码不需要考虑到任何一个面板,因为这对我来说是非常困难的,因为我很难跟踪哪些面板可能处于最前沿。此外,由于鼠标单击,事件并不总是生成。建议的解决方法是什么,以便我可以在顶级容器中修改行为?
添加回答
举报
0/150
提交
取消