【问题标题】:Internal graphics not initialized yet: javafx内部图形尚未初始化:javafx
【发布时间】:2015-03-06 12:39:17
【问题描述】:

我正在尝试编写一个javaFx 应用程序,该应用程序在一个窗口内包含多个图像。
简短的故事是我有一个名为Candyenum 类,每个糖果都有一些属性和代表它的图像文件的路径。
在我的 javafx.application 类 (Table) 的构造函数中,我想用这些图像填​​充一个数组列表,所以到目前为止我写了这个:

public class Table extends Application {

    ArrayList<Image> images;

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("CandyFx");
        primaryStage.show();
    }

    public Table() {
        images = new ArrayList<Image>();
        for (Candy candy : Candy.values()) {
            File file = new File (candy.getImagePath());
            Image image = new Image(file.toURI().toString());
            images.add(image);
        }
    }
}

现在每次我想创建Table 类的实例时,应用程序都会抛出java.lang.RuntimeException: Internal graphics not initialized yet
我如何才能初始化看起来我没有的图形?

【问题讨论】:

标签: java image javafx


【解决方案1】:

首先如果你使用的是linux,运行JavaFX需要GTK 2.18。尝试安装

libswt-gtk-3-java

只要您的屏幕为空,就会抛出此异常。尝试在start 方法中创建您的图像。就在primaryStage.show(); 之前。

也看看这个链接

http://cr.openjdk.java.net/~vadim/RT-33475/webrev.00/modules/graphics/src/main/java/com/sun/glass/ui/Screen.java.html

【讨论】:

    【解决方案2】:

    我不知道它究竟是如何工作的,但是当我们在开始时第一次创建 JFXPanel 时,我们不会再收到错误了。

    JFXPanel jfxPanel = new JFXPanel();
    

    【讨论】:

      【解决方案3】:

      实际上,JavaFX Stage 类是顶级 JavaFX 容器,应该在 JavaFX 应用线程上构建和修改。

      您正在使用 Stage 类,但尚未将 JavaFx 内容嵌入到 Swing 应用程序中,这可能会向您显示 'java.lang.RuntimeException 并显示尚未初始化内部图形的消息。

      你可以在这里使用-

      JFXPanel jfxPanel = new JFXPanel();

      或者你也可以这样使用。

      JFrame frame = new JFrame("Java Swing And JavaFX");  
      JFXPanel jfxPanel = new JFXPanel();  
      frame.add(jfxPanel);
      

      JFXPanel 是一个将 JavaFX 内容嵌入到 Swing 应用程序中的组件。要显示的内容由接受 JavaFX 场景实例的 setScene(javafx.scene.Scene) 方法指定。分配场景后,它会自动重新绘制。所有的输入和焦点事件都被透明地转发到场景给开发者。

      参考资料:

          JFXPanel: https://docs.oracle.com/javase/8/javafx/api/javafx/embed/swing/JFXPanel.html
      
          Stage: https://docs.oracle.com/javase/8/javafx/api/javafx/stage/Stage.html
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-27
        • 2016-07-10
        • 1970-01-01
        • 1970-01-01
        • 2022-11-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多