FXML¶
Az FXML a JavaFX keretrendszer része, amely a Java nyelv grafikus felhasználói felületeinek (GUI) fejlesztéséhez használható. Az FXML egy XML-alapú nyelv, amely lehetővé teszi a felhasználói felület szerkezetének és elrendezésének meghatározását egy elkülönített, deklaratív módon. Ez segít elkülöníteni a felület megjelenítését a program logikájától, ami tisztább és karbantarthatóbb kódot eredményez.
- Elemek és Komponensek: Az FXML-ben definiálható elemek magukban foglalják a különféle vezérlőket, mint például gombokat, szövegmezőket, címkéket, táblázatokat és egyéb UI komponenseket.
- Elrendezések: Az FXML támogatja a különféle elrendezési stratégiákat, mint például a VBox (függőleges elrendezés), HBox (vízszintes elrendezés), GridPane (rács elrendezés) és továbbiak.
- Stílusok és CSS: Az FXML-ben definiált elemek stílusát CSS segítségével lehet meghatározni, ami még nagyobb rugalmasságot biztosít a felület kinézetében.
- Eseménykezelés: Az FXML lehetővé teszi eseménykezelők hozzárendelését a felületi elemekhez, ami a felhasználói interakciókat kezeli.
- Adatkötés (Data Binding): Az FXML támogatja az adatkötést, ami lehetővé teszi az adatok automatikus szinkronizálását a felületi elemek és az alkalmazás adatmodellje között.
Az FXML használata segít a kód rendezettebb és karbantarthatóbb struktúrájában, mivel a felületi elemek definiálása különválik a Java kód logikai részétől. Ez különösen nagy projektjekeben és csapatmunkában jelent előnyt.
Példa
A bevezetés anyagrészben tárgyalt UI kinézete a következőképpen definiálható FXML-ben:

Label¶
A Label egy szöveges információt megjelenítő felhasználói felületi elem.
Properties¶
fx:id: Az elem egyedi azonosítója. A controller osztályban ezen keresztül érhető el az elem.text: A megjelenítendő szöveg.font: A szöveg betűtípusa.textAlignment: A szöveg igazítása.wrapText: Szövegtörés beállítása.
Button¶
A Button egy olyan felhasználói felületi elem, amelyet általában akkor használnak, amikor a felhasználó valamilyen műveletet szeretne végrehajtani.
Properties¶
fx:id: Az elem egyedi azonosítója. A controller osztályban ezen keresztül érhető el az elem.text: A megjelenítendő szöveg.onAction: Az eseménykezelő metódus neve.
TextField¶
A TextField egy egy soros szövegbeviteli mező, amelyet általában rövid, egysoros adatok, mint például felhasználónév vagy jelszó beírására használnak.
Megjegyzés
C# programozási nyelvben a TextBox néven ismert.
Properties¶
text: A TextField-ben megjelenő szöveg. Programozottan beállítható és lekérdezhető.promptText: A felhasználónak mutatott szürke szöveg, amikor a TextField üres. Segít a felhasználónak megérteni, milyen típusú adatot kell beírnia.editable: Meghatározza, hogy a felhasználó szerkesztheti-e a szöveget. Ha false, a szöveg csak olvasható.prefWidth,minWidth,maxWidth: A TextField szélességének preferált, minimális és maximális méretei.prefHeight,minHeight,maxHeight: A TextField magasságának preferált, minimális és maximális méretei.maxLength: A beírható maximális karakterek számát korlátozza.alignment: A szöveg igazítását szabályozza a TextField-ben (balra, középre, jobbra).font: A megjelenített szöveg betűtípusát állítja be.disabled: Ha true, a TextField nem használható (inaktív).opacity: A TextField átlátszóságát szabályozza.style: Inline CSS stílusokat lehet megadni a TextField kinézetének testreszabására.onAction: Egy eseménykezelő, amely akkor hajtódik végre, amikor a felhasználó megnyomja az Enter billentyűt a TextField-ben.focusedProperty: Jelzi, hogy a TextField éppen fókuszban van-e.textProperty: Egy StringProperty, amely lehetővé teszi a szöveg követését és változásának figyelését.
ListView¶
A ListView egy olyan felhasználói felületi elem, amely egy listát jelenít meg. A ListView a listaelemeket egy ObservableList-ben tárolja, amelyet a ListView-hoz lehet kötni.
Megjegyzés
C# programozási nyelvben a ListBox néven ismert.
Properties¶
items: A ListView által megjelenített elemek listája. Ez egy ObservableList típusú, amely lehetővé teszi a dinamikus frissítést.selectionModel: Kezeli a ListView elemeinek kiválasztását. A SelectionModel segítségével beállítható, hogy egyszerre egy vagy több elem legyen kiválasztható.placeholder: Egy olyan node (csomópont), amely akkor jelenik meg, amikor a ListView-nak nincsenek megjeleníthető elemei.editable: Meghatározza, hogy a ListView szerkeszthető-e. Ha true, az egyes elemek szerkeszthetők lehetnek.orientation: Meghatározza, hogy a lista elemek vízszintesen vagy függőlegesen jelenjenek meg. Lehet HORIZONTAL vagy VERTICAL.cellFactory: Egy olyan factory, amely lehetővé teszi a lista egyedi celláinak testreszabását. Segítségével meghatározható, hogy hogyan jelenjenek meg az adott elemek a listában.fixedCellSize: Beállítható egy fix cellaméret. Ha ez nem nulla, minden cella ebben a méretben jelenik meg, ami javíthatja a teljesítményt nagy listák esetén.focusModel: Kezeli a fókusz állapotát a ListView-ben. Segítségével megadható, melyik elem legyen fókuszban.prefSize,minWidth,minHeight,maxWidth,maxHeight: Ezek a tulajdonságok a ListView méretének beállítását teszik lehetővé, meghatározva a preferált, - minimális és maxListBoximális szélességet és magasságot.onEditCommit,onEditCancel,onEditStart: Eseménykezelők, amelyek a szerkesztési eseményekre (commit, cancel, start) reagálnak.
TableView¶
A TableView egy táblázatot megjelenítő felhasználói felületi elem. A TableView oszlopokból és sorokból áll, amelyeket celláknak nevezünk. A TableView a táblázat adatait egy ObservableList-ben tárolja, amelyet a TableView oszlopaihoz lehet kötni.
Megjegyzés
C# programozási nyelvben a DataGridView néven ismert.
<TableView fx:id="myTableView">
<columns>
<TableColumn text="Név" prefWidth="100">
<cellValueFactory>
<PropertyValueFactory property="name"/>
</cellValueFactory>
</TableColumn>
<TableColumn text="Életkor" prefWidth="100">
<cellValueFactory>
<PropertyValueFactory property="age"/>
</cellValueFactory>
</TableColumn>
</columns>
</TableView>
Properties¶
fx:id: Az elem egyedi azonosítója. A controller osztályban ezen keresztül érhető el az elem.columns: A táblázat oszlopait tartalmazó lista.items: A táblázat sorait tartalmazó lista.editable: Meghatározza, hogy a felhasználó szerkesztheti-e a táblázatot. Ha false, a táblázat csak olvasható.prefWidth,minWidth,maxWidth: A táblázat szélességének preferált, minimális és maximális méretei.prefHeight,minHeight,maxHeight: A táblázat magasságának preferált, minimális és maximális méretei.selectionModel: A kijelölt sorokat tartalmazó lista.style: Inline CSS stílusokat lehet megadni a táblázat kinézetének testreszabására.