[ antraks @ 08.07.2016. 12:10 ] @
Pravim neku malu GUI aplikaciju i koristim javafx i radim u netBeans-u.
Ali ne znam na koji nacin da to najbolje uradim. Nije mi jasno kako da postavim hijerarhiju.
Kad sam napravio novi projekat dobio sam glavnu klasu koja nasljedjuje application, i tu sam napravio neku malu formu za login, prijavu.
Poslije toga sam napravio novu formu, koja bi trebala biti glavna. Ali sam napravio kao obicnu java klasu i samo pozvao metodu u kojoj se kreira scena i svi elementi potrebni.
Da li je to dobar nacin? Ili mozda da u toj glavni klasi radim cijeli GUI (mada mi to nema smisla mnogo). Prvi put radim s javafx pa mi nije jasno kako ide to sve oko GUIa.
Evo projekat ovdje pa ako neko hoce da pogleda i pomogne bio bih zahvalan.
http://speedy.sh/WtKct/projektni-zadatak-knjigoholik.rar
[ antraks @ 15.07.2016. 13:06 ] @
Ako niko ne moze da mi pomogne sto se tice toga valjda moze u vezi neceg drugog.

Kako da napravim tabelu sa observable listom da svakih 2 min se lista osvjezi kada promjenim vrijednosti u nekoj hash mapi?

Imam hashmapu koja predstavlja kursnu listu koja se nalazi na serveru i svakih 2 minute se naprave nove vrijednosti i ubace u hashmapu.
Na klijentskoj strani imam tabelu koju sam povezao sa observable listom koja prati promjene u hashmapi.
I na dolje napisan nacin sam ubacio tu listu u tabelu. kada pokrenem aplikaciju, tabela se popuni nekim vrijednostima, ali nece da uradim refresh kada se kreiraju i dodaju nove vrijedosti u tabelu.

Gdje sam pogrijesio? U cemu je problem?

Code:

 public static HashMap<String, Double> kursnaLista;


 double eur = 1.2 + (8.2 - 1.2) * rand.nextDouble();
 double hrk = 1.2 + (8.2 - 1.2) * rand.nextDouble();
 double usd = 1.2 + (8.2 - 1.2) * rand.nextDouble();
 double nok = 1.2 + (8.2 - 1.2) * rand.nextDouble();
 ServerBanka.kursnaLista.put("EUR", eur);
 ServerBanka.kursnaLista.put("HRK", hrk);
 ServerBanka.kursnaLista.put("USD", usd);
 ServerBanka.kursnaLista.put("NOK", nok);

            TableColumn<Map.Entry<String, Double>, String> valuta = new TableColumn<>("Valuta");
            valuta.setCellValueFactory((TableColumn.CellDataFeatures<Map.Entry<String, Double>, String> p) -> new SimpleStringProperty(p.getValue().getKey()));

            TableColumn<Map.Entry<String, Double>, String> kurs = new TableColumn<>("Kurs");
            kurs.setCellValueFactory((TableColumn.CellDataFeatures<Map.Entry<String, Double>, String> p) -> new SimpleObjectProperty(p.getValue().getValue()));
            
  ObservableList<Map.Entry<String, Double>> items = FXCollections.observableArrayList( ((HashMap<String, Double>)     clientBanka.ois.readObject()).entrySet());
            final TableView<Map.Entry<String, Double>> kursnaListaTabela = new TableView<>(items);
            kursnaListaTabela.setItems(items);
            kursnaListaTabela.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
            kursnaListaTabela.getColumns().addAll(valuta, kurs);

           
            panel.add(kursnaListaTabela, 2, 3, 2, 9);