gpt4 book ai didi

java - 如何在 Java ProgressMonitor 中省略 "Cancel"按钮?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:26 25 4
gpt4 key购买 nike

我的任务是必要的,不应该被取消,我如何让 ProgressMonitor 不显示“取消”按钮,所以当它完成时,它会自动关闭面板。

弗兰克

最佳答案

I was thinking maybe I can ask it to return the components in it and delete the button

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

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。我会让你整理一下:)。

关于java - 如何在 Java ProgressMonitor 中省略 "Cancel"按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2778045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com