我在同时显示模态对话框和忙碌光标时遇到问题。
我显示模态对话框并将主框架的光标设置为“等待状态”。一切都很好,除了如果鼠标退出主框架并再次进入,它永远不会回到“等待状态”。如果对话框不是模态的,则不会发生此错误(?)。
测试程序:
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.setSize(new Dimension(500, 500));
final JDialog dialog = new JDialog(frame);
dialog.setModal(true);
frame.add(new JButton(new AbstractAction("Dialog") {
@Override
public void actionPerformed(ActionEvent e) {
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
dialog.setVisible(true);
}
}));
frame.setVisible(true);
}
答案 0 :(得分:2)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Cursor
的窗口,focus
可能会更改(或更改可见),这是模态窗口或ModalityType
s的基本属性,它永远不会回到“等待状态”。如果对话框不是模态的,则不会发生此错误(?)。
关闭子JDialog
后,JFrame
可以更改为Cursor
至WAIT_CURSOR
通过删除Cursor
或将setModal()
更改为ModalityType
ModalityType.MODELESS