Praktikumitöö:graafiline rakendus: erinevus redaktsioonide vahel
Resümee puudub |
Resümee puudub |
||
| 11. rida: | 11. rida: | ||
Kasutajaliides peab koosnema vähemalt järgmistest komponentidest: | Kasutajaliides peab koosnema vähemalt järgmistest komponentidest: | ||
* | * Üleval kuupäeva sisestuspaneel, kus on: | ||
** | ** sisestusväli alguskuupäeva ja lõpukuupäeva jaoks. Vaikimisi peaks seal olema väärtused viimase kuu jaoks (kuni eilse päevani). Kasutaja saab sinna ise kirjutada mõned teised kuupäevad. | ||
* | * All nupu/valikupaneel, klus kuvatakse: | ||
** | ** nupp "Näita" | ||
** | ** nupp "Katkesta" | ||
** | ** valikuboks kuvamise stiiliga (absoluutväärtused või miinimum-maksimum piirides) | ||
** | ** valikuboks põhivaluutaga (vaikimisi EEK): selle suhtes näidatakse teiste valuutade kursse. | ||
** | ** valikuboks mitme valikuga, kus on võimalik valida valuutasid võrdluseks, vaikimisi on valitud USD, saab valida korraga mitu. | ||
* joonistamispaneel, kuhu | * joonistamispaneel, kuhu kuvatakse graafikud. | ||
* Päris all "status bar" ehk info lugemise ülevaate paneel (kitsas riba!), kuhu kuvatakse info selle kohta, mitu päeva on loetud, kas lugemise käigus tuli vigu (kui tuli) | |||
== Kuidas graafik võiks välja näha == | == Kuidas graafik võiks välja näha == | ||
Iga graafik peaks olema joon, soovitavalt iga joon | Iga graafik peaks olema joon, soovitavalt iga joon eri värvi. Joon pn pidev, vasakust äärest paremale. | ||
eri värvi. | |||
Kindlasti tee koordinaatide rehkendus nii, et jooned mahuks | Kindlasti tee koordinaatide rehkendus nii, et jooned mahuks | ||
ekraanile ära ja ei jääks liiga väikeseks (ideaalis jookseks maks punkt | ekraanile ära ja ei jääks liiga väikeseks (ideaalis jookseks maks punkt | ||
joonistamisruumi ääreni). | joonistamisruumi ääreni). | ||
Graafikule tee alla kuupäevajoon ja kuva sellele vasakule algus ja paremale lõpukuupäev. Vasakule tee kursi (suhte) joon ja kuva sellele vähemalt ülemise ääre väärtus ja alla alumise ääre väärtus, vahele keskmine. NB! Siin antakse töö käigus täpsustavaid nüansse. | |||
== Soovitusi == | == Soovitusi == | ||
Redaktsioon: 31. oktoober 2007, kell 16:55
ESIALGNE SPECI TOORIK, MITTE LÕPLIK ÜLESANNE
Taustaks võid vaadata veidi sarnast ülesannet eelmisest aastast: Praktikumitöö:võrgurakendus
Ülesandeks on teha käsurealt käivitatav rakendus, mis esitab valuutakursside muutumise graafikuid. Valuutakursse tuleb lugeda Eesti panga lehelt, täpselt nagu praktikumis kaks: Praktikumitöö: Raamatute hinnavaatlus. Vahe kursside lugemisel on selles, et tuleb lugeda kursse mitte ainult ühe, vaid mitme päeva kohta. Graafikuid tuleb esitada mitmes variandis, vastavalt kasutaja eelistustele, info siin allpool.
Kasutajaliides
Kasutajaliides peab koosnema vähemalt järgmistest komponentidest:
- Üleval kuupäeva sisestuspaneel, kus on:
- sisestusväli alguskuupäeva ja lõpukuupäeva jaoks. Vaikimisi peaks seal olema väärtused viimase kuu jaoks (kuni eilse päevani). Kasutaja saab sinna ise kirjutada mõned teised kuupäevad.
- All nupu/valikupaneel, klus kuvatakse:
- nupp "Näita"
- nupp "Katkesta"
- valikuboks kuvamise stiiliga (absoluutväärtused või miinimum-maksimum piirides)
- valikuboks põhivaluutaga (vaikimisi EEK): selle suhtes näidatakse teiste valuutade kursse.
- valikuboks mitme valikuga, kus on võimalik valida valuutasid võrdluseks, vaikimisi on valitud USD, saab valida korraga mitu.
- joonistamispaneel, kuhu kuvatakse graafikud.
- Päris all "status bar" ehk info lugemise ülevaate paneel (kitsas riba!), kuhu kuvatakse info selle kohta, mitu päeva on loetud, kas lugemise käigus tuli vigu (kui tuli)
Kuidas graafik võiks välja näha
Iga graafik peaks olema joon, soovitavalt iga joon eri värvi. Joon pn pidev, vasakust äärest paremale.
Kindlasti tee koordinaatide rehkendus nii, et jooned mahuks ekraanile ära ja ei jääks liiga väikeseks (ideaalis jookseks maks punkt joonistamisruumi ääreni).
Graafikule tee alla kuupäevajoon ja kuva sellele vasakule algus ja paremale lõpukuupäev. Vasakule tee kursi (suhte) joon ja kuva sellele vähemalt ülemise ääre väärtus ja alla alumise ääre väärtus, vahele keskmine. NB! Siin antakse töö käigus täpsustavaid nüansse.
Soovitusi
Alustamiseks
Alustamiseks võid kasutada seda näiterakendust, mida loengus oleme arendanud: guiexample.java.
NB! guiexample.java kasutamise korral on mõttekas panna buttonpanel akna alläärde (SOUTH), muidu peab hakkama lahendama küsimust comboboxi kuvamisest Canvas'e peale.
Mõttekas on lugeda läbi ka Ecki õpiku GUI-komponentide peatükk http://math.hws.edu/javanotes/c7/s3.html ja selle jätk http://math.hws.edu/javanotes/c7/s4.html.
Põhjaliku comboboxide kasutusjuhendi leiad siit: http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html Muuhulgas soovitab juhend sellist struktuuri:
public class ComboBoxDemo ... implements ActionListener {
. . .
petList.addActionListener(this) {
. . .
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String petName = (String)cb.getSelectedItem();
updateLabel(petName);
}
. . .
}
kus ComboBoxDemo rolli sobiks meie juhul guiexampleFrame klass, mille sees olev keeruline nupu külge pandav addActionListener
button.addActionListener(new ActionListener() { ....
});
tuleks asendada lihtsamaga:
button.addActionListener(this);
Samuti soovitan teha guiexampleFrame ümber nii, et comboboxid oleks guiexampleFrame klassis (kus on ka äsjakirjeldatud handler nupule) klassi jaoks globaalsed muutujad. Hoiatus äsjatoodud ComboBoxDemo jaoks: see näide eeldab, et ActionEvent e tuleb comboboxi muutmisest, meie juhul tuleb ta aga hoopis nupust. Seega (JComboBox)e.getSource() ei ole meie jaoks mõttekas, pigem tuleb lihtsalt lugeda comboboxide kui guiexampleFrame jaoks globaalsete muutujate väärtust.
Lähiajal tuleb siis veidi lisa-näpunäiteid, vastavalt loengus toimunud etteprogrammeerimisele.
Kasulikke tutoriale (lisaks Ecki raamatule)
- Sun-i tutorial võrgu kasutamiseks
- Sun-i tutorial GUI tegemiseks Swing teegi abil, sh ülalviidatud comboboxide kasutusjuhend: http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html