小编amr*_*lab的帖子

系统托盘中的JavaFX应用程序

我正在使用JavaFX UI制作一个简单的应用程序,该应用程序只是这样做:

  • 有一个系统托盘图标,点击后显示一个窗口,再次点击时隐藏它,右键单击显示一个带有"退出"项目的菜单

我已经制作了UI并将应用程序放在Sys托盘中,但是我无法使用Normal Actionlistener方法显示/隐藏它,但是我收到了这个错误:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = AWT-EventQueue-0
Run Code Online (Sandbox Code Playgroud)

这是代码:

import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionListener;


import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application{
    public static void main(String[] args) { 
        launch(args);       
    }

    @Override
    public void start(final Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() { …
Run Code Online (Sandbox Code Playgroud)

javafx systray awt

17
推荐指数
1
解决办法
1万
查看次数

标签 统计

awt ×1

javafx ×1

systray ×1