Come posso creare delle Tabelle che abbiano le colonne di larghezza diversa?Dato che se uso i costruttori di JTable , me le crea tutte identiche?
TNX
Come posso creare delle Tabelle che abbiano le colonne di larghezza diversa?Dato che se uso i costruttori di JTable , me le crea tutte identiche?
TNX
Ciao Zero-2 !
Ti ho preparato del codice di esempio.
Quando ti interessa personalizzare alcuni componenti, prova ad utilizzare i loro 'modelli logici interni'.
codice:import java.awt.Dimension; import java.util.Vector; import javax.swing.*; import javax.swing.table.*; class TableExample extends JFrame { TableExample() { super("Address Book"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /////////////////////////////////////////////// // n° di righe int rows = 10; // n° di colonne int columns = 4; // etichette colonne String[] labels = {"Column 0", "Column 1", "Column 2", "Column 3"}; // larghezza colonne int[] widths = {50, 70, 120, 100}; // vettore dati tabella Vector data = new Vector(0, 1); // vettore colonne tabella Vector columnNames = new Vector(0, 1); // popolo la tabella for(int i = 0; i < rows; i++) { // vettore singola riga tabella Vector row = new Vector(); for(int j = 0; j < columns; j++) { row.addElement("value " + i + j); } data.addElement(row); } // intestazioni colonne for(int i = 0; i < columns; i++) { columnNames.addElement(labels[i]); } // modello dati della tabella DefaultTableModel tableModel = new DefaultTableModel(data, columnNames); // modello attributi delle colonne DefaultTableColumnModel columnModel = new DefaultTableColumnModel(); for(int i = 0; i < columns; i++) { // modello attributi colonna singola TableColumn column = new TableColumn(i, widths[i]); column.setHeaderValue(labels[i]); columnModel.addColumn(column); } // la tabella JTable table = new JTable(tableModel, columnModel); table.setPreferredScrollableViewportSize(new Dimension(350, 100)); JScrollPane scroll = new JScrollPane(table); /////////////////////////////////////////////////// getContentPane().add(scroll); pack(); setVisible(true); } public static void main(String[] args) { new TableExample(); } }![]()
Slack? Smack!
Tnx![]()
Non si può ovviare al fatto che la tabella si estende , all'ingrandirsi del frame , solo in orizzontale lasciando tutto quello spazio inutilizzato in basso??
Si deve ridimensionare il JViewport??
Tnx
JTable table = new JTable(...);
se vuoi settare la dimensione delle colonne:
// questa è la prima colonna:
table.getColumnModel().getColumn(0).setPreferredWi dth(40);
// seconda colonna:
table.getColumnModel().getColumn(1).setPreferredWi dth(120);
// terza:
table.getColumnModel().getColumn(2).setPreferredWi dth(35);
e così via per tutte le colonne che hai!
Ciao - Astor
Non ho ben capito.Originariamente inviato da Zero-2
Tnx![]()
Non si può ovviare al fatto che la tabella si estende , all'ingrandirsi del frame , solo in orizzontale lasciando tutto quello spazio inutilizzato in basso??
Si deve ridimensionare il JViewport??
Tnx
Vuoi che all'interno del JScrollPane si visualizzi solo la tabella senza lo spazio non occupato ?
Non ho ancora provato, ma credo che proverei ad aggionare l'altezza delle righe della tabella al variare delle dimensioni del contenitore in cui è inserita.
Ciao !
Slack? Smack!
Cosa hai fatto ?
Slack? Smack!
Ho solo adattato il tuo codice al mio programma e funziona tutto alla perfezione
Non è che potresti anche aiutarmi per l'altro postc he ho fattO??
![]()
Scusate se ripesco questo 3d vecchio, ma vorrei utilizzare questa classe con alcune modifiche.
Mi servirebbe che, una volta scritto un valore in una cella e premuto invio, il focus si spostasse nella cella accanto e non nella riga sottostante. Se invece premo invio nell'ultima cella della riga, si passa allora alla riga sottostante. Come posso fare?
Se la domanda è troppo specifica me ne scuso fin d'ora, ma ancora non sono pratico di Java!
Non si risollevano discussioni concluse da tempo.Originariamente inviato da grifis78
Scusate se ripesco questo 3d vecchio, ma vorrei utilizzare questa classe con alcune modifiche.
Apri una nuova discussione seguendo il Regolamento di quest'area, descrivi dettagliatamente il tuo problema e - se occorre - inserisci al massimo un collegamento a questo thread, nel caso possa essere utile a specificare ulteriori dettagli.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...