Kurssin Java FX:ään liittyviä JAR-tiedostoja
- FXGui.jar - komponentteja helpottamaan valintoja ja uusia ikkunoita
- FXMLPackage - komponentti helpottamaan JavaFX-projektin luomista
1. FXGui.jar
JavaFX:n valmiisiin komponentteihin ei saa SceneBuilderillä
helposti "aidon" näköistä dataa suunnitteluaikana. FXGui.jar on tehty helpottamaan tätä vaihetta. Kaikki komponentit eivät vielä ole samalla tasolla kuin aikanaan vastaavat Swing-komponentit ja siksi komponentit ovat vain "paikan varaajia" suunnitteluaikana ja myöhemmässä vaiheessa ne vaihdetaan koodissa vastaaviin JavaFX komponentteihin ks. malliharjoitustyö, vaihe 5.
1.1 Asennus
1.2 Käyttö
Chooser
- rajapinta, jonka kaikki Chooserit toteuttavat. Yhtenäistää komponenttien toimintaa. Ks. ChooserMultipleChooser
- rajapinta, jonka osa komponenteista toteuttaa. Tämän avulla saa tietoa monesta samanaikaisesta valinnasta.CheckBoxChooser
- joukko valintaruutuja (CheckBox
) alekkainComboBoxChooser
- alasvetovalinta johon saarivit
-omaisuudella tietojaDialogs
- aliohjelmia helpottamaan yksinkertaisten dialogien luomista. Ks. DialogsFunctions
- joukko apufunktioitaListChooser
- lista johon saarivit
-omaisuudella tietojaModalController
- luokka helpottamaan modaalisten dialogien luomista, ks DialogsModalControllerInterface
- rajapinta helpottamaan modaalisten dialogien luomista, ks DialogsRadioButtonChooser
- joukkoRadioButtoneita
jotka voi luoda antamalla sisällönrivit
-ominaisuuteenScrollBorder
- pohjakomponentti, jossa on kehys, yksi teksti ja ScrollPane jonka sisään voi laittaa jonkin komponentin- StringGrid - 2-ulotteinen merkkijonotaulukko, johon voi laittaa tietoja
rivit
-omaisuudella erottamalla sarakkeet tolpilla. TextAreaOutputStream
- tietovirta jolla voi tulostaa tekstialueeseenTextAreaWriter
- tietovirta jolla voi tulostaa tekstialueeseen
Tarvitsisin tuota MultipleChooser-rajapintaa, mutta ei näytä tulevan (ainakaan minulla) tuon FXGui.jar mukana. Mistäköhän johtuu?
VL: Kyllä pitäisi olla, koska tuon mukaan: https://kurssit.it.jyu.fi/TIEP111/ohj2/FXExamples/MultipleChooser_8java_source.html on siellä ja kun avaan vaikka 7zip:llä tuon .jar tiedoston niin tuo löytyy.
—1.3 Päivitetyjen versioiden vaatimat muutokset vanhaan koodiin
Luokkia on alettu päivittämään käyttökelpoisemmiksi versioiksi.
Lähinnä tämä tarkoittaa sitä, että komponentteihin voi liittää tiedon siitä, mitä oliota mikäkin rivi vastaa. Tämän seurauksena vanhaa versiota käyttäviin ohjelmiin voi tulla virheilmoituksia tyyliin:
Description Resource Path Location Type StringGrid is a raw type.
References to generic type StringGrid<TYPE> should be parameterized
KerhoGUIController.java /trunk/src/fxKerho line 58 Java Problem
Korjaus tehdään muuttamalla vastaavat rivit
@FXML private StringGrid tableHarrastukset;
alustavasti muotoon (voi tehdä korjausehdotuksista valitsemalla Add type arguments to StringGrid
):
@FXML private StringGrid<?> tableHarrastukset;
Myöhemmin tuon ?
tilalle voidaan kirjoittaa vaikkapa
@FXML private StringGrid<Harrastus> tableHarrastukset;
1.4 Kehitysprojekti
Voit osallistua komponenttien kehittämiseen, saat niistä kovasti demopisteitä.
1.5 DynamicComboBox
Tekijä: Konsta Lahtinen
DynamicComboBox on paranneltu version JavaFX omasta ComboBox komponentista. Sisältää automaattisen sisällön suodatuksen ja dynaamisen lisäyksen. Tällä hetkellä toimii vain merkkijonoille, mutta olioilla toimiva on tekeillään
1.5.1 Asennus
- lataa DynamicComboBox.jar tiedosto (voi myös lähdekoodia tutkia jos kiinnostaa)
- lisää JAR IDE:si (ainakin IDEA:ssa Project Structure/Modules/Dependencies ja sieltä + merkkiä, jonka jälkeen valitse tuo JARs or directories).
- lisää JAR Scenebuilderiin, toimii samalla tavalla kuin kurssin FXGui.jar lisäys.
- Lisäyksen jälkeen pitäisi näkyä seuraava ikkuna (huom tarkista, että tuo DynamicComboBox löytyy)
- ruksi kaikki jos ei ollut valmiiksi ja sitten vaan Import Components
1.5.2 Käyttö
- Toimii Scene Builderissa samalla tavalla kuin tavallinen ComboBox, paitsi voit lisätä sisältöä suoraan tuon properties alla olevan Sisalto listan avulla. Jos ei näy sisalto listan kohdalla mitään ruksi editable päälle ja käynnistä Scenebuilder uudestaan.
- Voit myös säätää dynaamista lisäystä ja sisällön suodattamista ruksimalla vastaavat laatikot
- Voit myös lisätä sisältöä suoraan koodista metodilla laatikko.asetaSisalto() (muista import!).
- Huom älä käytä tavallisen ComboBox:in metodia setItems() tämä oli jostain syystä tehty final:iksi joten ei voitu ylikirjoittaa ja oli pakko jättää se, mutta metodi ei ole yhteensopiva tämän komponentin kanssa.
- DynamicComboBox sisältää myös muita metodeja joilla voit esim: ottaa filtteröinnin tai dynaamisen sisällön lisäämisen pois sekä lisätä sisältöä jälkeen päin. Nämä ja kaikki muut metodit on dokumentoitu lähdekoodiin tänne
1.5.3 Yhteensopivuus tavallisen ComboBoxin kanssa
- Jos fxml-tiedostossasi on jo ComboBox ja haluat muuttaa tämän DynamicComboBox komponentiksi, niin tämä onnistuu suoraan fxml-tiedostosta. importtaa DynamicComboBox ja tämän jälkeen muuta ComboBox elementi DynamicComboBox, niin pitäisi suoraan vaihtua (muista tällöin GuiControlller luokassa muuttaa sisällön lisäys asetaSisalto() metodiin ja laatikon tyyppi DynamicComboBox!).
- Kaikki tavallisen ComboBox:in metodit (ainakin mitä olen itse kokeillut) toimivat myös DynamicComboBox:in kanssa
1.5.4 Käyttöesimerkkejä
Esimerkki käyttöliittymästä, jossa on DynamicComboBox Esimerkki DynamicComboBoxin sisällön suodatuksesta
Esimerkki uuden valinnan dynaamisesta lisäyksestä (lisäys on instanssi pohjainen eli kun DynamicComboBox olio tuhoutuu häviää myös uudet lisäykset)
1.5.5 Lopputekstit
Toivottavasti jollekkin tästä hyötyä/iloa :-)
Kaikki kommentit, viat ja parannusehdotukset laita vaikka kommenteihin tälle sivulle
Pyrin korjaamaan vikoja mikäli kyseisiä tulee esiin
2. FXMLPackage.jar
FXMLPackage
on plugin FXML
-ohjelmassa tarvittavien tiedostojen tuottamiseksi. Eclipsen e(fx)clipse-lisäosan avulla voi luoda uuden JavaFX-projektin. Mutta mikäli haluaa luoda uuden JavaFX-ohjelman olemassa olevan projektin alle, joutuu turhaan kikkailemaan. Tässä FXMLPackage
tulee avuksi.
IntelliJ IDEAa asennus IDEAn ohjeilla. Eclipseen alla olevilla ohjeilla.
2.1 Asennus Eclipseen
Tallenna FXMLpackage.jar Eclipsen dropins kansioon
, esim:
Win: c:\devel\ec2409\eclipse\dropins
Mac: /Applications/Eclipse.app/Contents/Eclipse/dropins
Linux: /home/Anonymous/devel/ec2409/Eclipse/dropins
- Mene Safarissa linkin päälle ja paina kahdella sormalle
- Ota
Lataa linkitetty tiedosto
- Avaa kaksi Finder ikkunaan vierekkäin
- Toiseen lataukset
- Toiseen tuo Eclipse ja sen kohdalla kahdella sormella
Näytä pakkauksen sisältö
- Jatka
dropins
-kansioon saakka - Raahaa
Lataukset
-ikkunastadropins
-kansioon - Käynnistä uudelleen Eclipse.
Mikroluokassa tuo pitää laittaa hakemistoon
c:\Users\Anonymous\dropins
ja sitten muistaa käynnistää Eclipse komentoriviltä komennolla ee2012
(tämä siis VAIN mikroluokassa).
2.2 Käyttö
Mikäli haluat luoda uuden JavaFX-projektin, voit tehdä sen toki normaaleilla ohjeilla, mutta helpommalla pääset niin, että luot ensin New/Java Project
ja sitten jatkat alla olevilla ohjeilla.
Kun haluat luoda uuden JavaFX-ohjelman olemassa olevan projektin alle, niin tee seuraavasti:
Moi, JavaFX Package ei ilmesty eclipseen vaikka oon laittanut oikean java FXMLpackage.jar tiedoston dropins kansioon. Katsottiin tätä ohjauksessa niin eclipse kansiossa ecplipse.ini tiedosto on vähän erilainen ohjaajan vastaavassa tiedostossa. Myös vesan_asetukset on kunnossa ja oikeassa paikassa. Ecplipsen versio on myös sama kuin ohjaajan koneessa.
VL: Onko se varmasti oikea tiedosto oikealla nimellä? M$ kalut voi nimetä sen jar.zip.
—Ei oo .zippinä vaan ihan oikea FXMLpackage_1.0.0.jar tiedosto sivulta
VL: pääsetkö etäpääteohjaukseen?
Moi, asensin kaikki alusta lähtien toiselle tietokoneelle niin package ilmestyi niin kuin ohjeessa.
—- Mene projektisi src-hakemiston päälle
- Ota hiiren oikealla
New/Other.../JavaFXML Package/Uusi JavaFXML Package
- Paina
Next
- Täytä lomakkeen tiedot:
Project src folder:
- projektin lähdekoodihakemiston nimi, voit hakeaBrowse...
-painikkeella (etsi projektisisrc
-hakemisto)Packagen nimi:
- esimfxKerho
Ohjelman nimi:
- esimKerho
Paina
Finish
Em esimerkin perusteella luotiin automaattisesti tiedostot:
src/fxKerho/kerho.css src/fxKerho/KerhoView.fxml src/fxKerho/KerhoController.java src/fxKerho/KerhoMain.java
Valitse näistä
KerhoMain
aktiiviseksi ja aja se.
Täälläkään ei ilmesty JavaFX Package Eclipseen, Mac M1 kyseessä. Kolmeen kertaan tein ohjeen mukaan ja sammuttelin välillä. Mistäköhän mahtaa johtua?
—


2.4 Kehitysprojekti
Projektin on aloittanut Antti Vasama.
Sijainti: https://gitlab.jyu.fi/tie/ohj2/esimerkit/fxexamples/-/tree/master/FXMLPackage
Mikäli muokkaat projektia, kommentoi alle mahdolliset muutokset ja/tai korjaa käyttöohjeita vastaavasti.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.