Visualizzazione dei risultati da 1 a 8 su 8

Discussione: altezza header Jtable

  1. #1

    altezza header Jtable

    ciao a tutti ho creato una tabella con l'intestazione, il mio problema è che non riesco a modificarne l'altezza vi posto il codice
    codice:
    Object[] columnNames2 = {"FIGLI","ETA'"};
    	        Object[][] data2 = {
    	        	{"", ""},
    	        	{"", ""},
    	        	{"", ""},
    	        	{"", ""},
    	        	{"", ""},
    	        	{"", ""},
    	        	{"", ""},
    	        	
    	           };
    		
    		DefaultTableModel model2 = new DefaultTableModel(data2,columnNames2);
    
    			  
    			  
    		JTable table_3 = new JTable(model2);
    		
    		
    			
    		 JTableHeader header2 = table_3.getTableHeader();
    			
    		    header2.setPreferredSize(new Dimension(0, 55)); // modifica dell'altezza della riga di intestazione ma non funziona
    		                                                                    
    		layered_3.add(header2);    
    		layered_3.add(table_3);
    		table_3.setRowHeight(30);

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Evidentemente c'è dell'altro e presumibilmente è concentrato sull'uso dei LayoutManager (che qui non si capisce come sia).
    Questo codice funziona alla perfezione:

    codice:
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.*;
    
    public class TBHeader extends JFrame {
    
       public TBHeader() {
          Container c = getContentPane();
          c.setLayout( new BorderLayout() );
    
          String[] intestazione = {"Colonna1", "Colonna2"};
          String[][] content = {{"Riga1, cella1", "Riga1, Cella2"},
                                {"Riga2, cella1", "Riga2, Cella2"},
                                {"Riga3, cella1", "Riga3, Cella2"}};
    
          DefaultTableModel model = new DefaultTableModel(content, intestazione);
          JTable table = new JTable( model );
          JTableHeader header = table.getTableHeader();
          header.setPreferredSize( new Dimension(0, 120) );
          table.setRowHeight( 50 );
    
          c.add(header, BorderLayout.NORTH);
          c.add(table, BorderLayout.CENTER);
    
          setSize(800, 600);
          setTitle("Altezza TableHeader");
          setDefaultCloseOperation( EXIT_ON_CLOSE );
          setLocationRelativeTo( null );
          setVisible( true );
       }
    
       public static void main(String[] args) {
          TBHeader tbh = new TBHeader();
       }
    }
    PS: se non ci sono particolari esigenze, solitamente si inserisce la JTable in uno JScrollPane, il quale si occupa da solo di visualizzare la JTableHeader, senza doverla aggiungere a parte.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    @LeleFT
    Una stupidaggine... perché ogni tanto metti degli spazi dentro le parentesi:
    c.setLayout( new BorderLayout() );
    e ogni tanto no:
    setTitle("Altezza TableHeader");

    è già strano vedere quegli spazi, non capisco se c'è anche una ragione per cui ogni tanto li metti e ogni tanto no.
    Ciao.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da c0der
    @LeleFT
    Una stupidaggine... perché ogni tanto metti degli spazi dentro le parentesi:
    c.setLayout( new BorderLayout() );
    e ogni tanto no:
    setTitle("Altezza TableHeader");

    è già strano vedere quegli spazi, non capisco se c'è anche una ragione per cui ogni tanto li metti e ogni tanto no.
    Ciao.

    Diciamo che il setTitle() senza spazi è un "refuso" che mi è scappato nella fretta, mentre scrivevo il codice.
    Gli spazi dentro al metodo sono una mia abitudine, che mi "aiuta" a vedere meglio il codice.
    E' una mia personalissima convenzione: se al metodo passo un solo parametro, lo distanzio dalle parentesi con uno spazio. Se, invece, i parametri sono più di uno, li tengo attaccati alle parentesi, ma li distanzio dalla virgola:

    codice:
    metodo( singolo_parametro );
    metodo(param1, param2, param3);
    Non so come spiegarlo... a me riesce più facile la lettura in questo modo.
    Lo stesso faccio con le parentesi che riguardano controlli di flusso (if e switch). Se l'espressione è monomica (è costituita da un solo membro), questo lo distanzio dalle parentesi, altrimenti no.

    codice:
    if ( espressione ) ...
    if (espressione1 op espressione2) ...
    (dove op è un operatore booleano, &&, ||, ==, !=, ecc)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    mi permetto di consigliarti di rivalutare la tua scelta e di togliere definitivamente quegli spazi.

    Le "code conventions" di Java sono qui (dal 1999):
    http://www.oracle.com/technetwork/ja...oc-136057.html

    P.S. Quando condvido il codice con altre persone se non utilizzo un formato "standard" diventerei
    matto, perché poi se gli altri modificassero il codice usando altre convenzioni alla fine diventerebbe
    un quadro di picasso.
    Poi fatta l'abiltudine a un certo coding style finisce che mi distraggo sulle differenze.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da c0der
    mi permetto di consigliarti di rivalutare la tua scelta e di togliere definitivamente quegli spazi.

    Le "code conventions" di Java sono qui (dal 1999):
    http://www.oracle.com/technetwork/ja...oc-136057.html

    P.S. Quando condvido il codice con altre persone se non utilizzo un formato "standard" diventerei
    matto, perché poi se gli altri modificassero il codice usando altre convenzioni alla fine diventerebbe
    un quadro di picasso.
    Poi fatta l'abiltudine a un certo coding style finisce che mi distraggo sulle differenze.
    Stiamo andando decisamente OT.
    Ad ogni modo, non ci sono convenzioni riguardanti lo spazio dentro le parentesi (sì, l'ho letta tutta e la conosco abbsatanza bene quella pagina). 20 anni di programmazione, penso di conoscerle le vere convenzioni, che riguardano altro. On line si trova di tutto, e lo spazio dentro le parentesi (sebbene non adottato da Sun) è una convenzione che molti adottano (rimane, comunque, uno stile personale, che nulla ha a che vedere con le convenzioni).

    Io, personalmente, ritengo che questo modo di scrivere sia più chiaro (in special modo laddove non si usino editor con highliting, in presenza di funzioni che richiamano funzioni... un miscuglio di parentesi che è bene tenere separate, a mio modo di vedere). Poi ognuno si sceglie il proprio. Nemmeno io, all'inizio, usavo mettere gli spazi dentro le parentesi... poi mi sono accorto che le istruzioni si leggono meglio (e questo, appunto, è soggettivo).

    codice:
    // Per me, questo
    metodo( oggetto.metodo() );
    
    // è molto, ma molto più leggibile di questo
    metodo(oggetto.metodo());
    PS: lo spazio prima e dopo lo uso sempre e solo sulla chiamata più esterna...

    Terminiamo l'OT.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    ho risolto utilizzando al posto di un box layout un border layout grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Originariamente inviato da LeleFT
    Ad ogni modo, non ci sono convenzioni riguardanti lo spazio dentro le parentesi
    Nonostante l'OT mi sembra giusto che possa precisare.
    Va benissimo la libertà, però non è vero che non ci sono convenzioni perché
    c'è un paragrafo "White Space"
    http://www.oracle.com/technetwork/ja...41388.html#475
    che inizia con "Blank spaces should be used in the following circumstances:" e NON è presente
    la possibilità all'interno delle parentesi, dopo la '(' e prima di ')'. Ciao.

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.