【问题标题】:JavaFX 8 Taskbar Icon ListenerJavaFX 8 任务栏图标监听器
【发布时间】:2016-07-27 14:53:40
【问题描述】:

描述:我使用 StageStyle.Undecorated 窗口样式创建了一个 javafx 8 应用程序。我目前有一个最小化、最大化和全屏按钮,以及一个用于最大化窗口的组合键监听器。

问题:有没有办法将侦听器附加到任务栏图标,然后我可以通过左键单击图标来最小化应用程序窗口?

【问题讨论】:

    标签: javafx java-8


    【解决方案1】:

    将 OnMousePressed 事件处理程序添加到包含您的图标的节点,然后将您希望执行的方法添加到处理程序!

    任务栏示例!!

    public static HBox createButtons(String id, int amount, int width, int height) {
            Rectangle[] button = new Rectangle[3];
            DropShadow glow = new DropShadow();
            HBox buttonBox = new HBox(10);
    
            glow.setSpread(.6);
            glow.setRadius(10);
    
            buttonBox.getStylesheets().add(Styles.styledToolBarCss);
            buttonBox.setId(id);
            buttonBox.setAlignment(Pos.TOP_RIGHT);
    
            button[0] = new Rectangle();
            button[0].setFill(new ImagePattern(ImagesAndIcons.minimize));
            button[0].setWidth(width);
            button[0].setHeight(height);
            button[0].setOnMouseEntered(e ->{
                glow.setColor(Color.DODGERBLUE);
                button[0].setEffect(glow);
            });
            button[0].setOnMouseExited(e ->{
                button[0].setEffect(null);
            });
            button[0].setOnMouseReleased(e ->{
                TileMapEditor.minimize();
            });
    
            button[1] = new Rectangle();
            button[1].setFill(new ImagePattern(ImagesAndIcons.maximize));
            button[1].setWidth(width);
            button[1].setHeight(height);
            button[1].setOnMouseEntered(e ->{
                glow.setColor(Color.DODGERBLUE);
                button[1].setEffect(glow);
            });
            button[1].setOnMouseExited(e ->{
                button[1].setEffect(null);
            });
            button[1].setOnMouseReleased(e ->{
                TileMapEditor.maximize();
            });
    
            button[2] = new Rectangle();
            button[2].setFill(new ImagePattern(ImagesAndIcons.exit));
            button[2].setWidth(width*1.5);
            button[2].setHeight(height);
            button[2].setOnMouseEntered(e ->{
                glow.setColor(Color.RED);
                button[2].setEffect(glow);
            });
            button[2].setOnMouseExited(e ->{
                button[2].setEffect(null);
            });
            button[2].setOnMouseReleased(e ->{
                TileMapEditor.exit();
            });
    
            buttonBox.getChildren().setAll(button);
    
            return buttonBox;
        }
    

    【讨论】:

      猜你喜欢
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多