Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [JAVA] Tabelle

  1. #1

    [JAVA] Tabelle

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    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!

  3. #3
    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    3
    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    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
    Non ho ben capito.
    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!

  6. #6
    Ho risolto tnx :metallica

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Cosa hai fatto ?
    Slack? Smack!

  8. #8
    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??

  9. #9
    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!

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da grifis78
    Scusate se ripesco questo 3d vecchio, ma vorrei utilizzare questa classe con alcune modifiche.
    Non si risollevano discussioni concluse da tempo.

    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...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.