Come faccio ad impostare l'allineamento del testo in una JTable?
Come faccio ad impostare l'allineamento del testo in una JTable?
Non ci ho mai provato, ma secondo me basta che definisci la struttura della tabella attraverso un modello (TableModel), nel tutorial della sun trovi alcuni esempi, nel modello definisci la tua colonna come una JTextField, in questo modo tramite getValueAt puoi modificare il tuo componenete come se fosse uncampo di testo, e così puoi impostargli anche l'orientamento.
devi definire un tuo TableCellRenderer per la tabella. Crei una classe che estende DefaultTableCellRenderer (che a sua volta estende JLabel) e ridefinisci il metodo getTableCellRendererComponent:
e settarlo poi così:codice:import java.awt.Component; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; public class MyTableCellRenderer extends DefaultTableCellRenderer{ public Component getTableCellRendererComponent(JTable table,Object value, boolean isSelected, boolean hasFocus, int row, int column){ super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); setHorizontalAlignment( CENTER ); return this; } }
codice:MyTableCellRenderer renderer = new MyTableCellRenderer(); tuaTabella.setDefaultRenderer(Object.class, renderer);
Al mio segnale... scatenate l'inferno!
@R@ve M@ster: Avevo già provato con un TableCellRenderer ma non ci riuscivo. Ora col tuo codice ci sono riuscito!
Grazie ad entrambi!
Ho un'atra domanda. La mia tabella concettualmente non ha delle intestazioni di colonna.. se metto la table all'interno di una JScrollPane però non riesco a nasconderle. Come faccio a non visualizzare le intestazioni di colonna?
Ho risolto così:
codice:JTableHeader th=table.getTableHeader(); th.setReorderingAllowed(false); th.setResizingAllowed(false); th.setPreferredSize(new Dimension(0, 0));