我有同时显示模态对话框和忙碌光标的问题.
我显示一个模态对话框,并将主框架的光标设置为“等待状态”.一切都很好,除了如果鼠标退出主框架并再次进入,它永远不会回到“等待状态”.如果对话框不是模态的,则不会发生此错误(?).
测试程序:
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);
}
最佳答案
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
>对于有焦点的窗口,光标可能会更改(或更改是可见的),这是模态窗口或ModalityTypes的基本属性,
it never comes back on “waiting state”. This bug (?) doesn’t happen if the dialog is not modal.
>在关闭子JDialog之后,可以将JFrame更改为Cursor到WAIT_CURSOR
>通过删除setModal()或将更改的ModalityTypes更改为ModalityType.MODELESS来显示已更改的Cursor