Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    99

    Nomi delle colonne della Jtable che non compaiono



    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import java.awt.Dimension;

    public class Jtabella extends JPanel{

    private JTable tab;

    public Jtabella(){

    String [] colum = {"Nome", "Cognome"};
    Object[][] cells = {{"0,0","0,1","0,2"}, {"1,0","1,1","1,2"}};
    tab = new JTable(cells, colum);
    JScrollPane pan = new JScrollPane();
    pan.add(tab);
    add(pan);
    }

    public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setSize(new Dimension(400,400));
    Jtabella t = new Jtabella();
    frame.add(t);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
    frame.setVisible(true);
    }
    }
    Come mai mi compaiono solo i dati?vedete errori?AIUTO

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,327
    Gli oggetti non vanno aggiunti al JFrame, ma al contentPane dela JFrame:
    codice:
    frame.getContentPane().add( t );
    Poi, per aggiungere una tabella al JScrollPane, non si usa add(), ma il costruttore oppure il ViewPort:
    codice:
    JScrollPane jsp = new JScrollPane( tuaTabella );
    
    e NON così
    
    JScrollPane jsp = new JScrollPane();
    jsp.add( tuaTabella );
    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
    Feb 2006
    Messaggi
    99
    Grazie 1000 adesso funziona correttamente

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    63
    Ciao a tutti,
    ho anche io lo stesso problema.

    Riporto il mio codice:
    codice:
    private void initGUI() {
    		try {
    				getContentPane().setLayout(null);
    				{
    					controller.MostraPolicy mostra=new controller.MostraPolicy();
    					TableModel jTable1Model = new DefaultTableModel(
    							mostra.Carica(), new String[] { "A", "B", "C"});
    					jTable1 = new JTable();
    					getContentPane().add(jTable1);
    					jTable1.setModel(jTable1Model);
    					jTable1.setAutoscrolls(true);
    					jTable1.setBounds(35, 35, 623, 259);
                                     }
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    }
    Purtroppo non compare nè la scrollbar nè il titolo delle colonne. L'unica differenza "evidente" è che io uso un ContentPane invece dello ScrollPane, ma ne ignoro gli effetti...
    Inoltre approfitto per chiedervi come faccio l'autoresize delle colonne in base al contenuto?

    Grazie.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Scusa ma se non usi uno JScrollPane, come puoi pretendere che ti compaia la barra di scroll. Anche i titoli delle colonne compaiono solo se inseriti in un JComponent che ne permette la visualizzazione come JScrollPane, appunto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    63
    Hai ragione simo, ma è in assoluto la prima interfaccia grafica che faccio e non è semplice doverla realizzare in così breve tempo.

    Allora, mi sto studiando il codice inserito da doping e da te corretto che, correzioni incluse, dovrebbe essere così:

    codice:
    package view;
    
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import java.awt.Dimension;
    
    public class Test extends JPanel{
    
    private JTable tab;
    
    public Test(){
    
    String [] colum = {"Nome", "Cognome"};
    Object[][] cells = {{"0,0","0,1","0,2"}, {"1,0","1,1","1,2"}};
    tab = new JTable(cells, colum);
    JScrollPane pan = new JScrollPane( tab );
    pan.add(tab);
    add(pan);
    }
    
    public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setSize(new Dimension(400,400));
    Test t = new Test();
    frame.getContentPane().add( t );
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    }
    }
    Ma lanciando l'esecuzione del main mi compare una finestra 400x400 con un solo puntino al centro che non so cosa rappresenti...

    Cosa sbaglio?

    Grazie ancora.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    codice:
    public Test(){
      String [] colum = {"Nome", "Cognome"};
      Object[][] cells = {{"0,0","0,1","0,2"}, {"1,0","1,1","1,2"}};
      tab = new JTable(cells, colum);
      JScrollPane pan = new JScrollPane(tab);
      //pan.add(tab); Togli questa riga, il JScrollPane si usa passando il componente interno 
      //da costruttore senza usare add 
      add(pan);
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    63
    Grazie mille per l'aiuto e soprattutto per la tua pazienza!

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.