将图像添加到Javafx应用程序

时间:2014-03-09 08:20:10

标签: javafx-2

我在为javafx桌面应用程序添加徽标时遇到问题。收到的错误是“无效的网址:无效的网址或资源未找到”。我检查过这个,但没有这样的错误。

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.*;
import javafx.application.Application;
import javafx.fxml.*;

public class Main extends Application{

    public static void main(String[] args) {
        Application.launch(args);
    }

    public void start(Stage primaryStage) {
        try  {
            primaryStage.setTitle("App");
            primaryStage.setIconified(true);
            primaryStage.getIcons().add(new Image("logo.jpg"));
            AnchorPane root=new AnchorPane();
            root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
            Scene s=new Scene(root, 800, 600);
            primaryStage.setScene(s);
            primaryStage.show();
        } 
        catch(Exception e) {
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

Image有一个带String参数的构造函数。此参数是图像的 URL "logo.jpg"不是有效的网址。使用构造函数的InputStream变体,你会有更好的运气:

primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("logo.jpg")));

(在上面的例子中,logo.jpg必须与该类在同一个包中;如果不是,则相应地修改路径)