java - 在 imageview JavaFx 上显示图像

标签 java image netbeans javafx imageview

我有一个 .fxml 文件,其中有一些空的矩形,磨碎内

<AnchorPane id="AnchorPane" prefHeight="700.0" prefWidth="650.0"     styleClass="fondo2" stylesheets="@tablerolote.css"     xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1"     fx:controller="juegoloto.CartonController">


    <children>
          <GridPane gridLinesVisible="true" layoutX="11.0" layoutY="44.0"     prefHeight="614.0" prefWidth="474.0" styleClass="fondo">
            <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 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 minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
            <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
            <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
        </rowConstraints>
         <children>
            <ImageView id="1" fitHeight="127.0" fitWidth="93.0" pickOnBounds="true" preserveRatio="true" />
            <ImageView id="2" fitHeight="127.0" fitWidth="96.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" />
            <ImageView id="3" fitHeight="126.0" fitWidth="96.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="2" />
            <ImageView id="4" fitHeight="127.0" fitWidth="97.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="3" />

         </children>
      </GridPane>

   </children>
</AnchorPane>

它是使用netbeans(拖放界面)自动创建的,我如何发送图像并在 ImageView id="2"/ImageView id="3" 等中显示,从.java 文件

public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("Carton.fxml"));

    Scene scene = new Scene(root);


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

我也有一个controller.java文件,但我不知道如何处理它

public class CartonController implements Initializable {

@FXML
private Label label;

@FXML


@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}    

}

最佳答案

您应该在 Controller 类中执行此操作。 FXML reference 中完整描述了如何使用 Controller 。 ,但简而言之:

fx:id 放在 ImageView 上(您可以在 SceneBuilder 中执行此操作):

<AnchorPane id="AnchorPane" prefHeight="700.0" prefWidth="650.0"     styleClass="fondo2" stylesheets="@tablerolote.css"     xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1"     fx:controller="juegoloto.CartonController">


    <children>
          <GridPane gridLinesVisible="true" layoutX="11.0" layoutY="44.0"     prefHeight="614.0" prefWidth="474.0" styleClass="fondo">
            <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 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 minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
            <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
            <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
        </rowConstraints>
         <children>
            <ImageView id="1" fx:id="imageView1" fitHeight="127.0" fitWidth="93.0" pickOnBounds="true" preserveRatio="true" />
            <ImageView id="2" fx:id="imageView2" fitHeight="127.0" fitWidth="96.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" />
            <ImageView id="3" fx:id="imageView3" fitHeight="126.0" fitWidth="96.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="2" />
            <ImageView id="4"  fx:id="imageView4" fitHeight="127.0" fitWidth="97.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="3" />

         </children>
      </GridPane>

   </children>
</AnchorPane>

然后将它们注入(inject)到您的 Controller 中,您可以根据需要访问它们:

public class CartonController implements Initializable {

@FXML
private ImageView imageView1 ;

@FXML
private ImageView imageView2 ;

@FXML
private ImageView imageView3 ;

@FXML
private ImageView imageView4 ;    

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        imageView1.setImage(new Image(...));
        // etc...
    }    

}

关于java - 在 imageview JavaFx 上显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322439/

相关文章:

java - 当我用鼠标旋转它时,立方体逐渐缩小..

java - 导入后 Eclipse 无法解析为类型

java - 使用 Java 通过 SSL 连接 MQ7.X

java - 如何实现一个基本指针

java - 在 Launch4j 中需要帮助

javascript - 显示图像数组中的图像 - Javascript

java - netbeans 6.* 中的解析延迟

ios - 在使用共享扩展时从 swift 检索图像到 typescript

css - 输入类型 ="image"在 Chrome 中显示不需要的边框,在 IE7 中显示断开的链接

Netbeans 错误 : Project Folder already exists and is not empty