JavaFX Scene Builder

Feras

Aktives Mitglied
hi,

ich habe mir eine kleine gui für eine Tabelle mit den JavaFX Scene Builder entworfen. Nun hab ich diesen per Eclipse abgespeichert und erhalte Code, mit dem ich nichts anfangen kann. Vorallem weiß ich nicht, wie ich dort überhaupt Inhalt von anderen Klassen einsetzen sol, da dieser nicht aus Methoden besteht? Wie kann ich mit dem Scene Builder normalen JavaCode erzeugen?

MfG Feras

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

<?import javafx.geometry.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>


<AnchorPane prefHeight="300.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
   <children>
      <GridPane layoutX="212.0" layoutY="168.0" prefHeight="300.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
        <columnConstraints>
          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
        </columnConstraints>
        <rowConstraints>
          <RowConstraints minHeight="1.0" prefHeight="1.0" vgrow="SOMETIMES" />
          <RowConstraints minHeight="10.0" prefHeight="175.0" vgrow="SOMETIMES" />
          <RowConstraints minHeight="1.0" prefHeight="1.0" vgrow="SOMETIMES" />
        </rowConstraints>
         <children>
            <TableView prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
              <columns>
                <TableColumn prefWidth="75.0" text="Vorlesung" />
                <TableColumn prefWidth="75.0" text="Tag" />
                  <TableColumn prefWidth="75.0" text="Uhrzeit" />
                  <TableColumn prefWidth="75.0" text="Raum" />
                  <TableColumn prefWidth="75.0" text="Tutor" />
                  <TableColumn prefWidth="75.0" text="Studiengang" />
                  <TableColumn prefWidth="75.0" text="Kapazität" />
                  <TableColumn prefWidth="75.0" text="Teilnehmer" />
              </columns>
            </TableView>
            <Label prefHeight="30.0" prefWidth="196.0" text="Wählen Sie eine Gruppe aus!">
               <font>
                  <Font name="System Bold" size="14.0" />
               </font>
            </Label>
            <Button mnemonicParsing="false" prefHeight="25.0" prefWidth="122.0" text="Gruppe auswählen" GridPane.halignment="RIGHT" GridPane.rowIndex="2">
               <GridPane.margin>
                  <Insets />
               </GridPane.margin>
            </Button>
         </children>
      </GridPane>
   </children>
</AnchorPane
 
Hallo Feras,

ich glaube du hast das Grundprinzip von JavaFX noch nicht wirklich verstanden. Im Prinzip hast du zwei Möglichkeiten eine GUI in JavaFX zu programmieren: einmal als FXML (wie in deinem Code) oder eben als normalen Java-Code.

Als Umsteiger von Swing o.Ä. scheint die normale Code-Version als einfacher und gewohnter. Hat man sich aber erstmal ein wenig mit FXML beschäftigt, ist es doch um einiges schöner zu schreiben und übersichtlicher. Der Vorteil von FXML: du trennst die View bzw. die GUI komplett von der Logik deines Programms.

"Normalen" Code kannst du meines Wissens im SceneBuilder nicht erstellen. Das müsstest du per Hand machen.

Natürlich kannst du auch im FXML-Code Listener hinzufügen und über eine Controller / Model Klasse Berechnungen o.Ä. durchführen.

Ich empfehle die zuerst Tutorials und Grundlagen von JavaFX zu lernen. Gibt inzwischen einige hilfreiche Tutorials in diesem Internetz. 🙂

Gruß
TB94
 
Stimme den beiden Vorrednern zu, möchte es aber noch etwas ergänzen.
Das war du da siehst, ist keine Programmiersprache, sondern schicht under ergreifend Markup in Form einer XML-Datei. Das "F" in FXML ist nur, um halt deutlich zu machen, das es sich um die Deklaration eines UI für JavaFX handelt. Da du das nicht als XML erkannt hast, empfehle ich also zusätzlich zu den Ausführungen von @TB94, dich auch noch unabhängig von GUIs noch ein wenig mit XMLs zu beschäftigen.
 

Zurück
Oben