当前位置: 首页 > 面试题库 >

如何在Java ProgressMonitor中省略“取消”按钮?

堵泽宇
2023-03-14
问题内容

我的任务是必要的,不应取消,我如何要求ProgressMonitor不显示“取消”按钮,所以完成后它将自动关闭面板。

坦率


问题答案:

我在想,也许我可以要求它返回其中的组件并删除按钮

使用Swing教程中的ProgressMonitorDemo(由BalusC链接)进行了以下更改:

public void propertyChange(PropertyChangeEvent evt) {
    if ("progress" == evt.getPropertyName() ) {
        int progress = (Integer) evt.getNewValue();
        progressMonitor.setProgress(progress);

        //  Added this

        AccessibleContext ac = progressMonitor.getAccessibleContext();
        JDialog dialog = (JDialog)ac.getAccessibleParent();
        java.util.List<JButton> components =
            SwingUtils.getDescendantsOfType(JButton.class, dialog, true);
        JButton button = components.get(0);
        button.setVisible(false);

        // end of change

        String message =
            String.format("Completed %d%%.\n", progress);
        progressMonitor.setNote(message);
        taskOutput.append(message);
        if (progressMonitor.isCanceled() || task.isDone()) {
            Toolkit.getDefaultToolkit().beep();
            if (progressMonitor.isCanceled()) {
                task.cancel(true);
                taskOutput.append("Task canceled.\n");
            } else {
                taskOutput.append("Task completed.\n");
            }
            startButton.setEnabled(true);
        }
    }
}

您还需要下载Swing Utils类。

该代码仅应执行一次,否则在对话框关闭时会得到一个NPE。我会让你整理一下:)。



 类似资料:
  • 问题内容: 在使用jQuery提交AJAX表单后,我想取消选中单选按钮。我有以下功能: 借助此功能,我可以清除文本框中的值,但不能清除单选按钮的值。 顺便说一句,我也尝试过,但是那没用。 问题答案: 要么(普通js) 或(jQuery)

  • 如果您在Firefox WebExtension中发出获取请求,它将自动设置“origin”标题。例如,当我在WebExtensions中运行此代码时。。。 ... 结果请求包含标题:“origin:moz”-extension://539a0d5b-60d9-4726-b3de-27d6979edc26" 在Chromium中运行相同的代码不会设置标头。(更新:这并不总是正确的,因为Chrome

  • 省略 不推荐省略 0 值单位,原因如下: CSS 规范中可以省略单位只有 [<length-percentage>](https://drafts.csswg.org/css-values-3/#typedef-length-percentage),其他比如角度单位 deg 在 Chrome 中可以省略, 这是浏览器的 Bug。 注:可以省略的单位包括:%|em|ex|ch|rem|vw|vh|v

  • 我创建了类型。当它打开它时,它会向我显示两个按钮:OK和Cancel。我想在按下取消按钮时处理该操作,但我不知道如何到达该操作。我怎么才能拿到?

  • 问题内容: 我正在查看一些代码,并看到了以下符号。我不确定这三个点的含义以及您所说的名称。 谢谢。 问题答案: 这意味着此方法可以接收多个Object作为参数。为了更好地低估,请从此处检查以下示例: 省略号(…)标识可变数量的参数,并在以下求和方法中进行了演示。 在JVM的限制内,使用所需的任意多个用逗号分隔的整数参数来调用sumsum方法。一些示例:sum(10,20)和sum(18,20,30

  • 我有一个带有的布局,属性设置为: 菜单有五项: 第三项标签过长(第二个单词没有省略,只是没有显示): 标签稍微短一点会导致正确的行为: 有没有办法处理更长的标签?最好的解决方案是省略号并显示“更长的文本…”当全文没有空间时。