# asennusurakka

Asennusurakka

# asennusedistyy20
# asennusongelma20

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.

IntelliJ IDEAa asennus IDEAn ohjeilla. Eclipseen alla olevilla ohjeilla.

# asennus

2.1 Asennus Eclipseen

Tallenna FXMLpackage.jar Eclipsen dropins kansioon, esim:

Win:   c:\devel\ec2312\eclipse\dropins
Mac:   /Applications/Eclipse.app/Contents/Eclipse/dropins
Linux: /home/Anonymous/devel/ec2312/Eclipse/dropins

dropins-kansioon tallentaminen Mac:issä:

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.

19 Jan 23 (edited 19 Jan 23)

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.

19 Jan 23 (edited 28 Jan 23)
  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

  2. Em esimerkin perusteella luotiin automaattisesti tiedostot:

     src/fxKerho/kerho.css
     src/fxKerho/KerhoView.fxml
     src/fxKerho/KerhoController.java
     src/fxKerho/KerhoMain.java
  3. 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?

16 Jan 24

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

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.