kissa
#

Asennusurakka

#
#

Please to interact with this component

{"ra": "asennusurakka", "rd": "113992"}

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ö

Komponentit:

  • Chooser - rajapinta, jonka kaikki Chooserit toteuttavat. Yhtenäistää komponenttien toimintaa. Ks. Chooser
  • MultipleChooser - rajapinta, jonka osa komponenteista toteuttaa. Tämän avulla saa tietoa monesta samanaikaisesta valinnasta.
  • CheckBoxChooser - joukko valintaruutuja (CheckBox) alekkain
  • ComboBoxChooser - alasvetovalinta johon saa rivit-omaisuudella tietoja
  • Dialogs - aliohjelmia helpottamaan yksinkertaisten dialogien luomista. Ks. Dialogs
  • Functions - joukko apufunktioita
  • ListChooser - lista johon saa rivit-omaisuudella tietoja
  • ModalController - luokka helpottamaan modaalisten dialogien luomista, ks Dialogs
  • ModalControllerInterface - rajapinta helpottamaan modaalisten dialogien luomista, ks Dialogs
  • RadioButtonChooser - joukko RadioButtoneita jotka voi luoda antamalla sisällön rivit-ominaisuuteen
  • ScrollBorder - 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 tekstialueeseen
  • TextAreaWriter - tietovirta jolla voi tulostaa tekstialueeseen

Käyttöesimerkki

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ä.

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.

2.1 Asennus

Tallenna FXMLpackage.jar Eclipsen dropins kansioon, esim:

{"ra": "eclipsedropins", "rd": "113998"}
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

dropins-kansioon tallentaminen Mac:issä:

{"ra": "eclipsedropins", "rd": "113998"}

Mikroluokassa tuo pitää laittaa hakemistoon

c:\Users\\dropins

ja sitten muistaa käynnistää Eclipse komentoriviltä komennolla ee1912 (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/New Java Project ja sitten jatkat alla olevilla ohjeilla.

Kun haluat luoda uuden JavaFX-ohjelman olemassa olevan projektin alle, niin tee seuraavasti:

  1. Mene projektisi src-hakemiston päälle
  2. Ota hiiren oikealla New/Other...JavaFXML Package/Uusi JavaFXML Package
  3. Paina Next
  4. Täytä lomakkeen tiedot:
  • Project src folder: - projektin lähdekoodihakemiston nimi, voit hakea Browse...-painikkeella (etsi projektisi src-hakemisto)
  • Packagen nimi: - esim fxKerho
  • Ohjelman nimi: - esim Kerho
  1. Paina Finish

Em 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!

05 Jan 20 (edited 07 Jan 20)

Sama kuvina:

2.3 Mistä tiedät että toimii?

Luo em ohjeilla yksi projekti ja kokeile voiko sen ajaa.

Nyt saat ruksia asennetuksi kohdan: FXMLPackage.jar

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?

07 Jan 20

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.

27 Jan 20 (edited 31 Jan 20)

2.4 Kehitysprojekti

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.