Ciao, ho un po' di dubbi col mio "antico progetto".
Ho riempito la mia jlist così:
Questo metodo mi ritorna un vettore con l'elenco dei menu.codice:public static Vector fillJListMenu() { //creo un vettore temporaneo dove inserire i campi del menu presi dal db Vector<String> temp = new Vector<>(); Statement statement = null; try { statement = connection.createStatement(); ResultSet rs = statement.executeQuery("SELECT menuName FROM Menu"); while (rs.next()) { String voices = rs.getString("menuName"); temp.addElement(voices); } } (qui cattura delle eccezioni) return temp; }
Io voglio che sia possibile cliccare su uno degli elementi dell'elenco in modo che vengano 'estratti' anche gli altri dati (ossia, l'id, autogenerato da mysql) per poterlo passare a una query sql per l'inserimento di uno o più elementi in questo menu attualmente selezionato (i due sono legati da una foreign_key che è appunto l'id del menu).
Questo è il metodo che mi gestisce, per ora, il click su un menu della jlist:
Ho pensato di recuperare l'idMenu (che nella Jlist non è presente perché è nascosto all'utente!) assegnandolo a una variabile temporanea per poterlo passare alla successiva INSERT del prodotto.codice:private void menuListValueChanged(javax.swing.event.ListSelectionEvent evt) { int index = menuList.getSelectedIndex(); int size = model.getSize(); if (index >= 0) { bDeleteMenu.setEnabled(true); } else { bDeleteMenu.setEnabled(false); } String field = (String) menuList.getSelectedValue(); menuName.setText(field); //int menuId=DBConnection.getMenuId(field); }
Quindi ho creato questo metodo:
Funzionare funziona, per ora il menuId che mi restituisce lo stampa solo a video (però lo stampa doppio, come mai?), ma non sono tanto sicura che questo sia il modo giusto per farlo.codice://Metodo per recuperare l'id del menu dalla selezione public static int getMenuId (String field) { int menuId=0; Statement statement = null; try { statement = connection.createStatement(); PreparedStatement ps=connection.prepareStatement("SELECT menuId FROM Menu WHERE (menuName=?)"); ps.setString(1, field); ResultSet executeQuery = ps.executeQuery(); while (executeQuery.next()) { menuId = executeQuery.getInt(1); } } (solite catture) return menuId; }
Commenti e/o suggerimenti?
Grazie!!

.
Rispondi quotando
