등으로부터 윈도우 작업 표시 줄에 정보를 보낼 수있는 방법은 작업 표시 줄의 아이콘은 다음과 같이 보여줍니다는 자바 오 자바 FX
이난의 진행 상황을 보여 드리고자합니다 그런 작업 표시 줄에 내 프로그램. 어떻게하면 javaFX를 사용하여이 작업을 수행 할 수 있습니까?
등으로부터 윈도우 작업 표시 줄에 정보를 보낼 수있는 방법은 작업 표시 줄의 아이콘은 다음과 같이 보여줍니다는 자바 오 자바 FX
이난의 진행 상황을 보여 드리고자합니다 그런 작업 표시 줄에 내 프로그램. 어떻게하면 javaFX를 사용하여이 작업을 수행 할 수 있습니까?
희망이 방법은 [`SystemTray`] (https://docs.oracle.com/javase/8/docs/api/java/awt/SystemTray.html) 클래스를 통해
package so;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Scene;
import javafx.scene.SnapshotParameters;
import javafx.scene.control.Button;
import javafx.scene.control.ProgressBar;
import javafx.scene.image.Image;
import javafx.scene.image.WritableImage;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaFXExample extends Application {
public static void main(String[] args) {
launch(args);
}
private static final int ICONSIZE = 16;
ProgressBar bar = new ProgressBar(0.2d);
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("change taskbar icon");
Button btn = new Button();
btn.setText("click me several times while looking at task bar");
bar.setMaxWidth(ICONSIZE);
btn.setOnAction(ev -> {
bar.setProgress(bar.getProgress() + 0.1d);
WritableImage image = new WritableImage(ICONSIZE, ICONSIZE);
bar.snapshot(new SnapshotParameters(), image);
File file;
try {
file = File.createTempFile("temp-image", ".png");
} catch (IOException e1) {
e1.printStackTrace();
return;
}
try {
ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png", file);
} catch (IOException e) {
e.printStackTrace();
}
InputStream is;
try {
is = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
primaryStage.getIcons().clear();
primaryStage.getIcons().add(new Image(is));
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
});
VBox box = new VBox(bar, btn);
primaryStage.setScene(new Scene(box, 300, 250));
primaryStage.show();
}
}
놀랍지 만, 확실히 창 속성을 사용하지 않는, 당신은 트레이 아이콘으로 진행률 표시 줄을 설정하고, 이건 정말 대단 했어! –
어쩌면 도움 . –
[Windows 7 작업 표시 줄 진행 표시 줄 (Java)] 가능한 복제본 (0120-336-005) – brian