[ Dejan Topalovic @ 03.12.2004. 01:40 ] @
Radim nesto u Javi (tek sam se pomaknuo sa pocetnickog nivoa), pa su mi zatrebale neke swing komponente, konkretno JComboBox.

Znam kako da ga postavim, znam kako i da dodam ActionListener/ItemListener i da baratam sa vrijednostima (items) u njemu, ali me muci kako da postavim npr. 31 JComboBox (za 31 dan u mjesecu) jedan pored drugog u istom redu, a zatim jos 31 JComboBox u redu ispod, te zatim u trecem redu da postavim 31 JTextField u kojeg bi se zapisivala razlika vrijednosti JComboBoxa u drugom i prvom redu. Huh, nadam se da je jasno :) Saljem i sliku sa primjerom od 3 JComboBoxa i JTextFielda, da dobijete dojam, koji layout zelim.



Kako je to najlakse izvesti? Moram li kreirati JComboBox za svaki dan pojedinacno ili ima neka opcija za kreiranje vise njih?
Usput, kako da promijenim Font i Font size za sve JComboBoxove, a da ne dodajem svakom pojedinacno, npr.
Code:
JComboBox jcb = new JComboBox();
jcb.setFont(new Font("Courier", 1, 10));


Ako imate neke linkove ka sajtovima na kojima je ovo koliko-toliko objasnjeno, dajte da ih "prostudiram" :)
[ _owl_ @ 03.12.2004. 22:22 ] @
Niko ti ne brani da ih postavljas u nekoj petlji. Mozda bi najbolje bilo da primenis MVC pattern (gde bi model bio neki objekat koji sadrzi dve kolekcije sa izabranim brojevima).
[ Dejan Topalovic @ 04.12.2004. 01:08 ] @
Imas li negdje neki primjer, koji bi mi pomogao za gorenavedeni slucaj?
Lako je meni za brojeve, koje smjestam kao items u JComboBox. Problem je sto ne znam da li postoji bolji nacin dodavanja tih JComboBoxova od svakog pojedinacno.
A i drugi dio pitanja je ostao neodgovoren ...
[ fop @ 04.12.2004. 02:27 ] @
covek ti lepo rekao ali ga nisi razumeo.
dodavanje (+ sta god hoces > npr. setovanje fonta) stavi u for petlju. za layout ti je dobar GridLayout.
evo neki primer iz glave, a nemoj da ga copypaste-ujes pa da kukas ako ima neke greske, dajem ti primer samo da bi shvatio na sta je _owl_ mislio
Code:

setLayout(new GridLayout(3, 31);
for (x=0; x<31; x++) 
    for (y=0; y<2; y++) {
        JComboBox jcb = new JComboBox(nizSaDanima);
        jcb.setActionCommand("x=" + x + "; y=" + y));
        jcb.addActionListener(this);
        jcb.setFont(new Font("Courier", 1, 10));
        add(jcb);
    }
for (x=0; x<31; x++)  {
        JTextField tf = new JTextField();        
        rezultati[x]= tf;
        add(tf);
}


u akciji odradi izracunavanje razliku i onda setuj na text field preko niza rezultati.
nije mi jasno samo na sta ce da lici taj gui sa 31 combo u 2 reda!! zar nemas neko elegantnije resenje?!

pozdrav.
[ _owl_ @ 04.12.2004. 15:17 ] @
Sto se tice linkova ja nigde nisam nasao neki sajt na kome bi sve to bilo lepo i detaljno objasnjeno. Pogledaj zip prilozen uz poruku u njemu imas primer za MVC (na zalost nigde nemam primer koji bi vise odgovarao tvojim potrebama). Uglavnom pogledaj dokumentaciju za Observable i Observer ( paket java.util).
[ Dejan Topalovic @ 23.12.2004. 00:24 ] @
Citat:
@fop: nije mi jasno samo na sta ce da lici taj gui sa 31 combo u 2 reda!! zar nemas neko elegantnije resenje?!
Evo pogledaj na sta treba da lici :)
http://www.outsourcing-it.com/.../personal_einsatz.php?anzahl=3

Oblik tog formulara je takav i ne mogu da ga promijenim.
Ja sam uradio ovo sa PHP PEAR::Calendar klasom i njenim subklasama, te uz dodatak JavaScripta, ali iako mi je poznat MVC pojam, ne pada mi na pamet kako da to uradim pomocu Jave. :(
Jasno mi je da moram koristiti petlje, jer nisam lud da rucno dodajem svaki JComboBox, ali mi se pojavio problem realizacije svih tih elemenata i prisustvo action (ili item) listenera za svaki JComboBox pojedinacno (odnosno samo za onaj treci red).
Ovaj isjecak sto si ti napisao bi mogao biti hint na ono sta mi treba, pa cu vidjeti kasnije da pokusam na osnovu njega nesto smuckati.

Nisam imao vremena eksperimentisati sa Javom u ovom slucaju, ali ako mi niko ne ukaze na neko elegantnije rjesenje uz pomoc Jave, onda cu ili odustati od izrade ovog u Javi ili cu se zainatiti, pa sam naci neko rjesenje.