2016-07-27 8 views
0

BESCHREIBUNG: Ich habe eine javafx 8-Anwendung mit dem StageStyle.Undcorated Windowstyling erstellt. Ich habe momentan eine Schaltfläche zum Minimieren, Maximieren und Vollbild sowie eine Tastenkombination zum Maximieren des Fensters.JavaFX 8 Taskbar Icon Listener

FRAGE: Gibt es eine Möglichkeit, einen Listener an das Taskleistensymbol anzuhängen, damit ich wiederum das Anwendungsfenster minimieren kann, indem ich mit der linken Maustaste auf das Symbol klicke?

Antwort

2

enter image description here Fügen Sie dem Knoten, der Ihr Symbol enthält, einen OnMousePressed-Ereignishandler hinzu und fügen Sie dann die Methode, die Sie ausführen möchten, dem Handler hinzu!

Beispiel für eine Taskleiste !!

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; 
    }