/ / Интегриране на fxml файла на JavaFX в Swing JFrame - java, swing, jframe, javafx

Интегриране на файла FXML на JavaFX в Swing JFrame - java, swing, jframe, javafx

Търся интегриране с JavaFXSwing JFrame. Намерих много статии, но не можах да намеря съвпадение с това, което искам. Искам да интегрирам целия fxml файл, създаден с Scene builder в JFrame. Например това е моето съдържание на fxml файла, който създадох с Scene builder.

<?xml version="1.0" encoding="utf-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="617.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
<children>
<ImageView fitHeight="72.25" fitWidth="571.0" layoutX="15.0" layoutY="15.0" pickOnBounds="true" preserveRatio="false">
<image>
<Image url="file:/opt/JavaFXSceneBuilder1.1/app/fxml-128.png" />
</image>
</ImageView>
<Pane layoutX="349.0" layoutY="96.0" prefHeight="109.0" prefWidth="237.0">
<children>
<Label layoutX="14.0" layoutY="14.0" text="Certificate no." />
<TextField layoutX="119.0" layoutY="11.0" prefWidth="118.0" />
<Label layoutX="14.0" layoutY="58.0" text="Date" />
<TextField layoutX="119.0" layoutY="55.0" prefWidth="118.0" />
</children>
</Pane>
<Pane layoutX="14.0" layoutY="96.0" prefHeight="109.0" prefWidth="327.0">
<children>
<Label layoutX="14.0" layoutY="14.0" text="Party Name" />
<Label layoutX="17.0" layoutY="55.0" text="Party Address" />
<TextField layoutX="118.0" layoutY="14.0" prefWidth="200.0" />
</children>
</Pane>
<TextArea layoutX="132.0" layoutY="151.0" prefHeight="40.0" prefWidth="200.0" wrapText="true" />
<TableView layoutX="22.0" layoutY="215.0" prefHeight="200.0" prefWidth="564.0">
<columns>
<TableColumn prefWidth="75.0" text="Sr. No." />
<TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="247.0" text="Particular" />
<TableColumn prefWidth="75.0" text="Qty." />
<TableColumn prefWidth="75.0" text="Rate" />
<TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="92.0" text="Amount" />
</columns>
</TableView>
<Label layoutX="22.0" layoutY="428.0" prefHeight="152.0" prefWidth="309.9998779296875" text="a." />
<Label layoutX="345.0" layoutY="428.0" text="Authorized Signature" />
</children>
</AnchorPane>

Има ли начин да заредите този fxml код, когато заредим JFrame, така че нашият JFrame да съдържа съдържанието на fxml.

Отговори:

0 за отговор № 1

Намерих решението на проблема си. Следният код зарежда предоставения от вас fxml файл.

Platform.runLater(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
Parent root = null;
try {
root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
Scene scene = new Scene(root);
fxpanel.setScene(scene);
} catch (Exception e) {
// TODO: handle exception
System.err.println("error : " + e.getMessage() + "cause : " + e.getCause() + "n" + e.getStackTrace());
}
}
});