小编Pra*_*der的帖子

在Linux上使用模式对话框时,Swing呈现繁忙游标的渲染问题

在关闭模式对话框后在应用程序框架的玻璃窗格上设置忙碌光标时,不会始终显示忙碌光标.有时它有效(第一次它总是工作),有时不工作.

更好的是,在打开对话框之前设置忙碌光标.显示忙碌光标但是当在内部移动鼠标时,然后在对话框外部时,不再显示忙碌光标.

请注意,我仅在Linux上观察到以下错误.在Mac OS X或Windows上,行为是确定性且一致的.

另一个提示,在代码示例的第一种情况下,当鼠标未进入对话框并且使用键盘选择了YES_OPTION时,始终显示忙碌的鼠标光标.同样在这种情况下,玻璃窗格上的"请稍候......"标签永远不会被绘制.

这里有一个SSCCE演示这些错误:

import java.awt.event.*;
import javax.swing.*;

public class TestFrame extends JFrame {

private JPanel panel;
private JPanel glassPane;

public TestFrame() {
    final JButton button1 = new JButton(new AbstractAction("Start activity indicator after closing the dialog") {
        @Override
        public void actionPerformed(ActionEvent e) {
            doAction1();
        }
    });

    final JButton button2 = new JButton(new AbstractAction("Start activity indicator before opening the dialog") {
        @Override
        public void actionPerformed(ActionEvent e) {
            doAction2();
        }
    });

    panel = new JPanel();
    panel.add(button1);
    panel.add(button2);
    getContentPane().add(panel, BorderLayout.NORTH); …
Run Code Online (Sandbox Code Playgroud)

java linux swing modal-dialog mouse-cursor

4
推荐指数
1
解决办法
1662
查看次数

标签 统计

java ×1

linux ×1

modal-dialog ×1

mouse-cursor ×1

swing ×1