Prikaz jedne poruke
Stara 9.8.2015, 22:53   #238
Ivan452
Veteran
 
Član od: 25.7.2008.
Lokacija: Beograd
Poruke: 772
Zahvalnice: 33
Zahvaljeno 189 puta na 152 poruka
Slanje poruke preko MSN-a korisniku Ivan452
Određen forumom Re: How to... Java

@mica1709

Disclaimer: nikada nisam radio u JavaFX, ali kako ne dobijaš odgovor rekoh ajde da ti pomognem.

Kažeš "ne znam kako da u padajućoj listi učitam podatke iz tabele kurs". OK. Ovde imaš dva dela:
1. Da isčitaš podatke iz baze
2. Da napuniš padajuću listu tim podacima.
Deluje mi da većinu koda imaš već.

Prvo, testiraj da li ti radi ovo čitanje iz baze OK. U odvojenoj nekoj metodi stavi da ti čita iz baze i da ti ispiše u konzoli ili gde god. Na prvi pogled mi deluje da radi, ali da budeš siguran.

Ako dobro uzimaš podatke onda prelaziš na popunjavanje.

Kod:
comboBox.setOnAction(new EventHandler<ActionEvent>() {
        	@Override
            public void handle(ActionEvent e) {
        		java.sql.Connection con = null;
        		Statement statement = null;
        	    String url = "jdbc:mysql://localhost/skola_jezika";
        	    String username = "root";
        	    String password = "";
        	    ArrayList<String> comboBoxVrednosti = new ArrayList<String>();
        	    ObservableList<String> data = FXCollections.observableArrayList();
        		try {
        			con = DriverManager.getConnection(url, username, password);
        			statement = con.createStatement();
        			ResultSet rs = statement.executeQuery("SELECT ime_kursa FROM kurs");
        			
        			while(rs.next()) {
        				String ime_kursa = rs.getString("ime_kursa");
        				comboBoxVrednosti.add(ime_kursa);
        			}
        			con.close();
        			
        		} catch (SQLException ex) {
        			ex.printStackTrace();
        		}
        		
        		DefaultComboBoxModel model = new DefaultComboBoxModel(comboBoxVrednosti.toArray());
        		
        	}
       });
U ovom delu koda, koliko vidim ti kad god klikne korisnik na combobox, program čita iz baze kurseve, i upisuje ih u ArrayList<String> i na kraju tu listu dodaje u model. Ovo bi možda (ali je veliko možda) i radilo, ali ti nigde comboboxu nigde ne dodaješ taj model u koji si ubacio listu.

Ali, prvo ovo je vrlo loš pristup. Da svaki put kada klikne na combo box on isčitava ovako nešto iz baze je nepotrebno.
Uradi to kada korisnik uđe na ovu formu (panel ili kako god se zove), i odmah popuni combobox sa isčitanim vrednostima.
Evo ovde možeš da nađeš veliki broj načina kako da dodaš vrednosti u combobox (i mislim da ni jedan ne koristi ovaj DefaultComboBoxModel:
https://docs.oracle.com/javafx/2/ui_.../combo-box.htm
Ivan452 je offline   Odgovor sa citatom ove poruke