Kurz 4 IT 115 od ZS 2015 cvičení Tabulka v Java. FX Připojení k databázi přes JDBC Alena Buchalcevová katedra informačních technologií Vysoká škola ekonomická v Praze buchalc@vse. cz
Komponenta Table. View § Ukázkový příklad Table. Java. FXVPameti 2 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Model tabulky § Při použití tabulky v Java. FX aplikaci je dobrou praktikou implementovat třídu, která definuje datový model a má metody a pole pro práci s tabulkou § V našem příkladu je to třída Person § Můžeme ji implementovat: § jako statickou vnitřní třídu ve třídě s metodou start (Table. Java. FXVPameti) § v příkladu je implementována jako veřejná vnější třída § first. Name, last. Name a email jsou string property vytvořené proto, aby bylo možné se odkazovat na jednotlivé prvky § dále jsou pro každou property vytvořeny get a set metody 3 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Třída Panel. Tabulky § V příkladu je vytvořena třída Panel. Tabulky, která vytvoří tabulku a vloží ji do panelu – Flow. Pane § Má metodu get. Panel, který panel s tabulkou vrátí § Data, která se mají v tabulce zobrazit, se drží v atributu data, který je typu Observable. List
Třída Panel. Tabulky/2 § Dále je třeba definovat, která data se budou zobrazovat ve sloupcích – to se dělá pomocí properties definovaných pro každý prvek Table. Column first. Name. Col = new Table. Column("First Name"); first. Name. Col. set. Min. Width(100); first. Name. Col. set. Cell. Value. Factory( new Property. Value. Factory<>("first. Name")); Table. Column last. Name. Col = new Table. Column("Last Name"); last. Name. Col. set. Min. Width(100); last. Name. Col. set. Cell. Value. Factory( new Property. Value. Factory<>("last. Name")); metoda set. Cell. Value. Factory definuje cell Table. Column email. Col = new Table. Column("Email"); email. Col. set. Min. Width(200); email. Col. set. Cell. Value. Factory( new Property. Value. Factory<>("email")); factory pro každý sloupec cell factory je implementována pomocí třídy Property. Value. Factory class, která použije property first. Name resp. last. Name resp. email sloupce tabulky jako odkaz na odpovídající metody třídy Person 5 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Třída Panel. Tabulky/3 § Když je vytvořen datový model a data jsou asociována se sloupci tabulky, můžete přiřadit data do tabulky pomocí metody set. Items table. set. Items(data) § Protože objekt Observable. List sleduje změny prvků, obsah Table. View se automaticky aktualizuje 6 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Další k Table. View Tutoriál http: //docs. oracle. com/javafx/2/ui_controls/tableview. htm#CJAGAAEE 7 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Uložení tabulky do databáze SQLite § Ukázkový příklad Table. Java. FXDB 8 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Připojení SQLite § Vytvořit knihovnu a vložit do ní jar soubor, který se stáhne na https: //bitbucket. org/xerial/sqlite-jdbc/downloads/sqlite-jdbc-3. 8. 11. 1. jar 9 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Připojení k DB a prvotní naplnění do třídy Panel. Tabulky try { connection = Driver. Manager. get. Connection("jdbc: sqlite: Pokus"); statement = connection. create. Statement(); //stat. execute. Update("drop table if exists person"); statement. execute. Update("create table if not exists osoby(First. Name varchar(50), Last. Name varchar(50), Email varchar(50)); "); // pocatecni ulozeni data = observable. Array. List( new Person("Jacob", "Smith", "jacob. smith@example. com"), new Person("Isabella", "Johnson", "isabella. johnson@example. com"), new Person("Ethan", "Williams", "ethan. williams@example. com"), new Person("Emma", "Jones", "emma. jones@example. com"), new Person("Michael", "Brown", "michael. brown@example. com") ); save. Data(); 10 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Načtení dat z DB do observable listu data = FXCollections. observable. Array. List(); Result. Set rs = connection. create. Statement(). execute. Query("select * from osoby"); while (rs. next()) { data. add(new Person(rs. get. String("First. Name"), rs. get. String("Last. Name"), rs. get. String("Email"))); } 11 Kurz 4 IT 115 cvičení ©Alena Buchalcevová
Další na § http: //www. javafxapps. in/tutorial/Persisting-Table. Viewdatas-in-Database. html 12 Kurz 4 IT 115 cvičení ©Alena Buchalcevová


