Java 中的 Windows 7 Taskbar Progress Bar

2022-09-01 14:27:38

我想知道是否可以像Windows资源管理器一样在进行文件操作时在任务栏上显示进度条?

我看到了很多例子,但它们都涉及C#。

SWT不会削减它。

progress bar displayed on the taskbar


答案 1

我发现这个特性包含在Java 9中。它是AWT的一部分,使用起来非常简单。

下面是一个简短的示例:

import java.awt.Taskbar;
import java.awt.Taskbar.State;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * @author fxl
 */
public class TaskbarSample {

    public static void main(String[] args) {

        // JavaDoc:
        // https://docs.oracle.com/javase/9/docs/api/java/awt/Taskbar.html

        // MSDNDoc:
        // https://msdn.microsoft.com/en-us/library/dd391692(VS.85).aspx
        if (Taskbar.isTaskbarSupported() == false) {
            return;
        }

        JFrame dialog = new JFrame("Test - 50%");
        dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        dialog.setVisible(true);    


        Taskbar taskbar = Taskbar.getTaskbar();
        taskbar.setWindowProgressState(dialog, State.ERROR);
        taskbar.setWindowProgressValue(dialog, 50);     
    }

}

答案 2

现在可以使用SWT,请查看代码示例:
org.eclipse.swt.snippets.Snippet336


推荐