2017-10-06 2 views
0

Ich habe Probleme, das Anwendungssymbol mit JavaFX zu ändern (der Code ist unten und meine Versuche sind auskommentiert). Ich habe versucht, mehrere Lösungen aus früheren Stack-Overflow-Antworten zu implementieren, aber ich bin mir nicht sicher, ob diese Methoden jetzt veraltet sind. Ich benutze NetBeans 8.2 (und das Symbol befindet sich in einem Ordner namens Bilder unter dem Quellpaket).Fehler beim Setzen des Anwendungssymbols mit JavaFX

1. Versuch: Illegaler Beginn der Expression. Bezeichner erwartet: JavaFX Application Icon

2. Versuch: keine geeignete Methode zur add (java.awt.Image) gefunden: Changing the icon of my java application

3. Versuch: Kann nicht Symbol finden. Cannot instantiate the type Image java?

5. Versuch: Bild ist abstrakt es kann nicht instanziiert werden. http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm

package javafxapplication1; 

import java.awt.Image; 
import javafx.application.Application; 
import javafx.fxml.FXMLLoader; 
import javafx.scene.Parent; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.stage.StageStyle; 

import javafx.event.EventHandler; 
import javafx.scene.input.MouseEvent; 
import javax.imageio.ImageIO; 


public class JavaFXApplication1 extends Application { 
    private double xOffset = 0; 
    private double yOffset = 0; 


    @Override 
    public void start(Stage stage) throws Exception { 

     //stage.getIcons().add(Image(<JavaFXApplication1>.class.getResourceAsStream("/images/fiji.png")); 

     Image i = ImageIO.read(getClass().getResource("/images/fiji.png")); 
     //setIconImage(i); 
     //stage.getIcons().add(i); 

     //stage.getIcons().add(Image("/images/fiji.png")); 

     // stage.getIcons().add(ImageIO.read(getClass().getResource("/images/fiji.png"))); 

     //stage.getIcons().add(new Image(this.getClass().getResourceAsStream("/images/fiji.png"))); 

     Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml")); 
     //stage.initStyle(StageStyle.UNDECORATED); 
     // makes it moveble 
     // LOOK INTO!!!!!!!!!!! 
     root.setOnMousePressed(new EventHandler<MouseEvent>() { 
      @Override 
      public void handle(MouseEvent event) { 
       xOffset = event.getSceneX(); 
       yOffset = event.getSceneY(); 
      } 
     }); 
     root.setOnMouseDragged(new EventHandler<MouseEvent>() { 
      @Override 
      public void handle(MouseEvent event) { 
      stage.setX(event.getScreenX() - xOffset); 
      stage.setY(event.getScreenY() - yOffset); 
      } 
     });   
     Scene scene = new Scene(root); 

     stage.setScene(scene); 
     stage.show(); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     launch(args); 
    } 

} 

Antwort

0

Sie benötigen ein Bild zu laden und zu den Symbolen der Bühne hinzuzufügen.

import javafx.scene.image.Image; 
Image icon = new Image(Controller.class.getResource("/game.png").toExternalForm(), false); 
primaryStage.getIcons().add(icon); 

Unter Ubuntu werden diese Symbole jedoch nicht angezeigt. Dieser JavaFX-Fehler wurde lange Zeit nicht gelöst.

Es scheint, dass Ihr erster Versuch, das neue Schlüsselwort für das Bild Instanziierung fehlt, und stellen Sie sicher, dass es ein javafx.scene.image.Image, kein java.awt.Image Bild, das einen anderen Konstruktor hat. Versuchen Sie Folgendes:

stage.getIcons().add(new Image(JavaFXApplication1.class.getResource("/images/fiji.png").toExternalForm()); 
Verwandte Themen