Controller¶
A controller osztály felelős a felhasználói felületi elemek kezeléséért. Az FXML-ben definiált elemeket a controller osztályban @FXML
annotációval ellátott mezők segítségével lehet elérni. Az elemekhez eseménykezelőket is hozzá lehet rendelni, amelyek a felhasználói interakciókat kezelik.
Label szövegének módosítása¶
A Label szövegét a setText()
metódus segítségével lehet módosítani.
Példa
TextField értékének lekérdezése¶
A TextField értékét a getText()
metódus segítségével lehet lekérdezni.
Példa
Button eseménykezelő¶
Az eseménykezelő metódus neve a onAction
attribútum értéke. Az eseménykezelő metódus paraméterei a következők:
Példa
TableView (Táblázat)¶
Megjegyzés
Az alábbi fejezet C# programozási nyelvben DataGridView néven ismert.
A TableView egy táblázatos felületi elem, amelyben adatokat lehet megjeleníteni. A táblázat oszlopait TableColumn elemek segítségével lehet definiálni. A TableColumn elemekhez meg kell adni a megjelenítendő adat típusát, valamint a megjelenítendő adatot tartalmazó oszlop nevét.
Vegyünk egy komplex példát, amelyben beolvasunk egy csv fájlt gombnyomásra, majd megjelenítjük a táblázatban.
1. FXML¶
Először definiáljuk a felületet FXML-ben.
2. Osztály létrehozása¶
Első lépésben létre kell hoznunk az osztályt.
JavaFX esetében, hogy meg tudjuk jeleníteni a tartalmat, eltérő adattípusokat kell használnunk, amelyek a következők:
SimpleStringProperty
: Szöveges adatok tárolására használható.SimpleIntegerProperty
: Egész számok tárolására használható.SimpleDoubleProperty
: Lebegőpontos számok tárolására használható.
Getterek¶
A gettereket a JavaFX megfelelő típusú gettereire kell átírni.
Ez annyi kiegészítéssel jár, hogy a visszatérési típus után .get()
-et kell írni.
Példa
3. Fájl beolvasása¶
Miután létrehoztuk az osztályt, be kell olvasnunk a fájlt. Ezt akkor kell megtennünk, amikor a felhasználó rákattint a gombra.
JavaFX esetében a fájl beolvasását a FileChooser
segítségével tudjuk megtenni.
Az adatok tárolására egy speciális lista típust használunk, az ObservableList
-et.
Teljes kódrészlet
4. Táblázat feltöltése¶
setItems¶
A táblázat feltöltéséhez a setItems()
metódust kell használni. Paraméterként meg kell adni az adatokat tartalmazó listát.
TableColumn¶
A táblázat oszlopait a TableColumn
osztály példányainak segítségével lehet definiálni. A konstruktor paraméterként meg kell adni az oszlop nevét, amely egy tetszőleges string.
TableColumn<Focista/*(1)!*/, Integer/*(2)!*/> sorszamOszlop/*(3)!*/ = new TableColumn<>("Sorszám"/*(4)!*/);
- Az osztály neve, amelynek az adatát meg szeretnénk jeleníteni.
- Az adat típusa, amelyet meg szeretnénk jeleníteni. A sorszám esetén ez egy egész szám.
- Tetsszőleges változó neve, amelyet az oszlophoz rendelünk.
- Az oszlop neve, amelyet a felhasználó fog látni.
setCellValueFactory¶
A setCellValueFactory()
metódus segítségével lehet megadni, hogy az oszlop melyik adatot jelenítse meg. A PropertyValueFactory
osztály konstruktorának paraméterként meg kell adni a Focista
osztály megfelelő getterét.
sorszamOszlop/*(1)!*/.setCellValueFactory(new PropertyValueFactory<Focista/*(2)!*/, Integer/*(3)!*/>("sorszam"/*(4)!*/));
- Az változó neve amit az előző lépésben adtunk meg.
- Az osztály neve, amelynek az adatát meg szeretnénk jeleníteni.
- Az adat típusa, amelyet meg szeretnénk jeleníteni. A sorszám esetén ez egy egész szám.
- A getter neve, amelyet az előző lépésben adtunk meg, ez megegyezik a
Focista
osztálysorszam
getterével.
getColumns¶
A getColumns()
metódus segítségével lehet hozzáadni az oszlopokat a táblázathoz.
Összesítve¶
Összesítve tehát egy oszlop hozzáadása a táblázathoz, majd annak értékkel történő feltöltése a következőképpen néz ki: