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.
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 saa rivit-omaisuudella tietojaDialogs - aliohjelmia helpottamaan yksinkertaisten dialogien luomista. Ks. DialogsFunctions - joukko apufunktioitaListChooser - lista johon saa rivit-omaisuudella tietojaModalController - luokka helpottamaan modaalisten dialogien luomista, ks DialogsModalControllerInterface - rajapinta helpottamaan modaalisten dialogien luomista, ks DialogsRadioButtonChooser - joukko RadioButtoneita jotka voi luoda antamalla sisällön rivit-ominaisuuteenScrollBorder - pohjakomponentti, jossa on kehys, yksi teksti ja ScrollPane jonka sisään voi laittaa jonkin komponentinrivit-omaisuudella erottamalla sarakkeet tolpilla.TextAreaOutputStream - tietovirta jolla voi tulostaa tekstialueeseenTextAreaWriter - tietovirta jolla voi tulostaa tekstialueeseenLuokkia 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;
Voit osallistua komponenttien kehittämiseen, saat niistä kovasti demopisteitä.
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.
Tallenna FXMLpackage.jar Eclipsen dropins kansioon, esim:
Win: c:\devel\ec1912\eclipse\dropins
Mac: /Users//devel/ec1912/Eclipse.app/Contents/Eclipse/dropins
tai: /Applications/Eclipse.app/Contents/Eclipse/dropins
Linux: /home//devel/ec1912/Eclipse/dropins
Lataa linkitetty tiedostoNäytä pakkauksen sisältödropins-kansioon saakkaLataukset-ikkunasta dropins-kansioonMikroluokassa tuo pitää laittaa hakemistoon
c:\Users\\dropins
ja sitten muistaa käynnistää Eclipse komentoriviltä komennolla ee1912 (tämä siis VAIN mikroluokassa).
Mikäli haluat luoda uuden JavaFX-projektin, voit tehdä sen toki normaaleilla ohjeilla mutta helpommalla pääset niin, että luot ensin New/New Java Project ja sitten jatkat alla olevilla ohjeilla.
Kun haluat luoda uuden JavaFX-ohjelman olemassa olevan projektin alle, niin tee seuraavasti:
New/Other...JavaFXML Package/Uusi JavaFXML PackageNextProject src folder: - projektin lähdekoodihakemiston nimi, voit hakea Browse...-painikkeella (etsi projektisi src-hakemisto)Packagen nimi: - esim fxKerhoOhjelman nimi: - esim KerhoFinishEm esimerkin perusteella luodaan tiedostot:
src/fxKerho/kerho.css
src/fxKerho/KerhoView.fxml
src/fxKerho/KerhoController.java
src/fxKerho/KerhoMain.java
Mac ongelmaa: tämän asennus onnistui normaalisti, mutta samalla JavaFX hävisi kokonaan tuolta File/New/Other/ -kohdasta…mitä tehdä?
VL: En osaa sanoa, mulla ei hävinnyt. Entä jos teet sen JavaFX asennuskohdan Eclipseen uudelleen? Tosin et sää tämän laittamisen jälkeen sitä JavaFX:n perustapaa edes viitsi käyttää :-)
5 kerta asennuksessa toden sanoi, en tiedä mikä siellä oli väärin, mutta homma OK!
—


Luo em ohjeilla yksi projekti ja kokeile voiko sen ajaa.
Myös tässä ajaminen F11 tuotti virheilmoituksen jar-sta, mutta virhetilanteiden ohjeiden mukaisesti ajaminen kerran Run as java application ja alkoi toimimaan sen jälkeen odotetusti. Eli tekeekö tuo jotain kirjastojen yhdistelyjä siten kuin javan perustiedoissa opittiin? Ajamisen yritäminen siinä vaiheessa kun muualla sijaitsevia (käyttäjän) kirjastoja ei ole vielä linkitetty päättyy virhetilanteeseen, ja Run as jotenkin linkittää ne?
—Error: Unable to initialize main class fxmltesti.FxmltestiMain Caused by: java.lang.NoClassDefFoundError: Stage Tommonen virheilmotus, kun koitin ajaa FXMLPackagen avulla tehtyä esimerkkiohjelmaa. Mistähän johtuu?
VL: onkohan sun projektissa JavaFX-jutut muakna (se omatekoinen JRE ja siinä JavaFX jarrit kaikki mitä piti).
Jos tarkoitatte ali, fxgui, graphics ja music -jarreja, ne löytyvät projektin classpathista. Projektin tekovaiheessakin on ruksattu kyseinen JRE-valinta, eli mielestäni kyllä.
VL: stagen puute viittaa siihen että perus JavaFX jutut puuttuvat sieltä projektin build pathista ja sinne ne tulevat sen modifioifdun JavaFX -JRE:n kautta ja siksi pitäisi tarkistaa että siellä on ne kaiki JavaFX-jarrit (sieltä c: hakemsitosta).
Lisäsin javafx-jutut projektiin, nyt valittaa Error: JavaFX runtime components are missing, and are required to run this application.
Projektin on aloittanut Antti Vasama.
Sijainti: https://svn.cc.jyu.fi/srv/svn/ohj2/FXExamples/trunk/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.