Gestione dati in java

Andre.

Nuovo Utente
Salve a tutti, sto sviluppando un applicazione per l'acquisto di prodotti ma nello sviluppo del codice ho incontrato qualche problema:
1) Dal punto di vista grafico, ho una jtable dentro un jpanel ed ho bisogno di richiamare questa jtable dentro il listener poichè devo essere a conoscenza di che righe sono state selezionate però non tovo un modo per riprendere la jtable da dentro il jpanel....come posso fare?
2) Dal punto di vista implementativo, l'utente seleziona un prodotto, clicca aggiungi al carrello e seleziona la quantità da ordinare; come posso salvare la quantità da ordinare? Perché aggiungere un attributo apposito nella classe prodotto mi sembra poco appropriato ed utilizzare un array di interi dentro la classe ordine mi sembra un metodo troppo brutale :grat:.......Ringrazio anticipatamente per le risposte...
 

ocean62

Utente Attivo
161
38
Hardware Utente
CPU
I7 5820K Kraken X61 cooled
Scheda Madre
MSI X99 SLI PLUS
Hard Disk
Samsung SSD 850 PRO 1TB - WD Black 2TB - WD RE 2TB
RAM
Corsair DDR4 2666GHz 32GB
Scheda Video
Palit GTX980Ti Super JetStream
Alimentatore
XFX XTR750 - APC SMART-UPS 1500VA SMT1500I
Case
Corsair Obsidian 450D
Sistema Operativo
Windows 10 pro 64
1) se non c'è una variabile che contiene l'istanza della tua JTable o non è visibile dentro al listener, allora potresti assegnare un nome alla tua JTable quando crei l'istanza e recuperare quest'ultima con una scansione (ricorsiva) dei componenti contenuti nel JPanel. Oppure, più semplicemente, crei l'istanza della JTable ad un livello di visibilità appropriato.

2) Map<Prodotto, Integer>
 

Andre.

Nuovo Utente
1) se non c'è una variabile che contiene l'istanza della tua JTable o non è visibile dentro al listener, allora potresti assegnare un nome alla tua JTable quando crei l'istanza e recuperare quest'ultima con una scansione (ricorsiva) dei componenti contenuti nel JPanel. Oppure, più semplicemente, crei l'istanza della JTable ad un livello di visibilità appropriato.

2) Map<Prodotto, Integer>
1) il problema è che non riesco a capire come andare a scansionare...il mio listener preleva la finestra quindi faccio un get per prelevarmi il Jpanel, bene dopo di che con che funzione procedo? perche io pensavo di prelevarmi il JScrollPane e poi prendermi la tabella con un Viewport però il problema è proprio che non riesco a prelevare il jscrollpane
2) Sapevo esistesse una struttura adatta al mio caso ma non sapevo quale!!!......questa è un illuminazione :love: ti ringrazio
 

ocean62

Utente Attivo
161
38
Hardware Utente
CPU
I7 5820K Kraken X61 cooled
Scheda Madre
MSI X99 SLI PLUS
Hard Disk
Samsung SSD 850 PRO 1TB - WD Black 2TB - WD RE 2TB
RAM
Corsair DDR4 2666GHz 32GB
Scheda Video
Palit GTX980Ti Super JetStream
Alimentatore
XFX XTR750 - APC SMART-UPS 1500VA SMT1500I
Case
Corsair Obsidian 450D
Sistema Operativo
Windows 10 pro 64
Una funzioncina per trovare un componente della gerarchia potrebbe essere questa

Codice:
Component findDescendentByName(Container cnt, String name) {
  if (cnt == null) return null;
  if (name.equals(cnt.getName())) return cnt;
  for (int i = 0; i < cnt.getComponentCount(); ++i) {
    Component cmp = cnt.getComponent(i);
    if (cmp instanceOf Container) {
      cmp = findDescendentByName((Container) cmp, name);
      if (cmp != null) return cmp;
    } else if (name.equals(cmp.getName())) return cmp;
  }
  return null;
}
Devi ricordarti di assegnare un nome alla tua JTable con setName. L'ho scritta un po' al volo quindi non rispondo di eventuali errori! :)
 

Entra

oppure Accedi utilizzando