当前位置: 首页 > 知识库问答 >
问题:

ImageView未显示图像-JavaFX[重复]

孟俊发
2023-03-14

我在Java fx控制器类中有一些代码如下所示。图像没有显示出来。图像就位,没有错误。请引导。

@Override
public void initialize(URL location, ResourceBundle resources) {
    image1 = new Image(getClass().getResource("php81e3DF.png").toExternalForm());
    image2 = new Image(getClass().getResource("phpqJypee.png").toExternalForm());
    image3 = new Image(getClass().getResource("php2XSnrZ.png").toExternalForm());
    defaultt = new Image(getClass().getResource("phpxrxh4T.png").toExternalForm());

    imgVw1 = new ImageView();
    imgVw1.setX(200);
    imgVw1.setY(200);
    imgVw2 = new ImageView();
    imgVw3 = new ImageView();

    imgVw1.setImage(image1);
    imgVw2.setImage(image2);
    imgVw3.setImage(image3);
}

我不能让图像显示出来。我确信fxml和controller类使用了正确的注释。我在类中使用了正确的@fxml,没有变量错误。

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>

<GridPane fx:id="rootPane" alignment="TOP_CENTER" hgap="10" vgap="10" xmlns="http://javafx.com/javafx/8.0.172-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <children>
      <GridPane hgap="2.0" vgap="2.0">
        <columnConstraints>
          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
        </columnConstraints>
        <rowConstraints>
          <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
            <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
        </rowConstraints>
         <GridPane.margin>
            <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
         </GridPane.margin>
         <children>
            <ImageView fx:id="imgVw1" fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" />
            <ImageView fx:id="imgVw2" fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" />
            <ImageView fx:id="imgVw3" fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="2" />
            <Button fx:id="imageV1Button" mnemonicParsing="false" onAction="#button1Pressed" text="Flip" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER" />
            <Button fx:id="imageV2Button" mnemonicParsing="false" onAction="#button1Pressed" text="Flip" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER" />
            <Button fx:id="imageV3Button" mnemonicParsing="false" onAction="#button1Pressed" text="Flip" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP" />
         </children>
      </GridPane>
   </children>
   <columnConstraints>
      <ColumnConstraints />
   </columnConstraints>
   <rowConstraints>
      <RowConstraints />
   </rowConstraints>
</GridPane>

共有1个答案

印晋
2023-03-14

您不必添加这些代码行:

imgVw1 = new ImageView();
imgVw2 = new ImageView();
imgVw3 = new ImageView();

当您这样做时会发生的情况是:

>

  • fxmlloader读取FXML文件以初始化整个网格窗格:IMGVW1IMGVW2IMGVW3将创建并添加到rootpane的子列表中。

  •  类似资料:
    • 我有一个装满图像的文件夹要在我正在创建的游戏中实现,我想在窗口中显示这些。这是我迄今为止的代码。 这将是一个程序在IntelliJ/中从jar运行。“资产”文件夹与此文件位于同一目录中。我没有发现文件路径错误,所以我假设它可以找到图像,但它不会出现在屏幕上,而矩形会出现。 公平警告,我正在从头开始学习JavaFX,我发现没有太多关于事物如何工作的解释,所以这可能是一个愚蠢的问题。

    • 我想在JavaFX的ImageView中显示图像。图像应该从SQLite数据库中获取,并在场景加载时显示。我使用以下代码片段从数据库获取代码,并在之前创建的ImageView中显示它。但是图像没有按预期显示。我做错了吗?P. S.我测试了改变路径在两个和当读取文件从目录到。但似乎没有什么奏效。但是当我手动将一个图像文件放在src目录中并尝试读取它时,它就像一个魅力。但是我想展示一张从数据库中提取的

    • 我想问一下,是否有人知道JavaFX ImageView如何处理图像清理。当图像对象/内存空闲时。 以下是给我带来问题的情况:我的场景中有两个“标签”。这是我的标签:在父窗格中的按钮和切换窗格。每个选项卡都有自己的ImageView。在切换窗格之前,我先在旧ImageView上设置空图像,然后加载新图像。我原以为在切换标签后,旧图像从旧图像视图将是免费的,但事实并非如此。 为了监控行为,我使用Ja

    • 它应该显示一个与掷骰子一致的图像,但什么也没有发生。有问题的图像在包中(如果有关系,请单击并拖入项目窗口)。我在system.out.print中添加了t,以便显示Dice1和2的结果,这样我就知道这是有效的。 我还需要添加一些东西来使它看起来像吗?我以前从未在JavaFX中使用过实际的图像....总的来说,我对JavaFX是新手。 GetChildren c:\users\ethan c.b的错

    • 停留在基础上。我在设置图像路径时遇到了一些语法问题。当我尝试创建一个图像并给它图像路径时,它总是抛出一些关于路径的一些异常。我已经评论了一些我已经尝试过的路径组合。你能告诉我我做错了什么吗?谢谢你。 封装JOPOFX; 这是打印出来的内容:错误while creating image java.lang.IllegalArgumentException:无效URL:在javafx.scene.im