Ridimensiona un JPanel in linea con un JDialog
Domanda
Ho un JDialog
che contiene una serie di JPanels
in un CardLayout
. Alcuni di questi pannelli contengono JTables
che vorrei ridimensionare in linea con qualsiasi ridimensionamento di JDialog
. Non sono sicuro di come raggiungere questo obiettivo e qualsiasi aiuto sarebbe molto apprezzato.
Al momento le tabelle rimangono semplicemente le loro dimensioni attuali e non si ridimensionano. Sono sicuro che sia qualcosa di semplice, ma ho problemi a individuare l'approccio esatto necessario.
Molte grazie in anticipo. Fornirò ulteriori informazioni se necessario.
modifica: JDialog
viene utilizzato come procedura guidata, quindi viene visualizzato solo uno dei pannelli alla volta, quindi l'utilizzo di CardLayout
. Vorrei idealmente che questo sia il layout manager, anche se se è la fonte dei problemi, allora ovviamente ripenserei!
Soluzione
Puoi mantenere CardLayout, ma devi fare quanto segue:
1. imposta il layout del tuo JDialog su BorderLayout e aggiungi un nuovo JPanel ( contentPanel ) al JDialog
2. ora imposta questo layout contentPanel su CardLayout
3. aggiungi gli altri pannelli al cardlayout come richiesto.
4. Assicurati anche dei layout che utilizzi su ciascuno dei pannelli che stai aggiungendo a CardLayout. Per impostazione predefinita, JPanel utilizza FlowLayout, penso, e questo non è l'ideale per una JTable. Quindi potrebbe essere necessario giocare con il layout del pannello contenente anche il tavolo; prova anche BoxLayout o BorderLayout.