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