2009-04-18 11 views
11

Ho una tabella J che memorizza i risultati di una query di database, finora così buona. Quello che voglio è che l'ultima colonna di ogni tabella abbia un JButton cliccabile che aprirà la schermata di modifica per l'oggetto rappresentato in quella riga, e ciò significa che il pulsante dovrà conoscere i dettagli della prima colonna nella tabella dal suo propria riga (l'ID dal database).È possibile includere JButton in una tabella J?

Qualche consiglio? Ho già provato ad aggiungere JButtons ma sono diventati testo quando ho provato ad eseguirlo.

risposta

5

Contrariamente al tutorial sopra, c'è un modo per farlo senza un complicato calcolo matematico di posizionamento, listener di mouse personalizzati e modelli di tabelle personalizzate. Invece, può essere fatto con un solo semplice classe personalizzata seguendo il modello descritto qui:

http://web.archive.org/web/20100623105810/http://ivolo.mit.edu/post/A-Simple-Pattern-for-Embedding-Components-into-a-Swing-JTable.aspx

+1

questo è eccellente e molto utile. – Epaga

+2

Il link è morto, è ancora possibile trovare la soluzione da qualche parte? – KristianMedK

+1

La Way Back Machine ha una copia ... Ma questa soluzione sembra utilizzare un modello di tabella personalizzato (anche se anonimo), quindi non sono sicuro a prima vista cosa rende questo tutorial migliore di qualsiasi altro ... – Rini

1

Dai un'occhiata all'introduzione di Sun al componente JTable, in particolare la sezione su Editors and Renderers. Discute l'uso di alternative CellRenderers e CellEditors. Quello che dovresti fare è creare (o prendere in prestito) un ButtonCellRenderer e un ButtonCellEditor e quindi applicarli alla colonna in questione nel tuo JTable. Gli esempi trovati negli articoli collegati dovrebbero darti tutte le informazioni di cui hai bisogno.

+0

è facile, ad eccezione dei clic del mouse per inoltrare i pulsanti di ButtonCellRenderer. –

+2

Il renderer non accetta eventi. Questo è il lavoro del montatore. Dai un'occhiata al mio tutorial nella risposta che ho dato. – pek

Problemi correlati