2010-04-22 6 views
1

Hé les gars, travaillant sur un calendrier des événements. Je vais avoir quelques difficultés à obtenir mes têtes de colonne pour afficher .. voici le codeJava Swing Table questions

private JTable calendarTable; 
private DefaultTableModel calendarTableModel; 

final private String [] days = {"Sunday", "Monday", "Tuesday", 
            "Wednesday", "Thursday", "Friday", 
            "Saturday"}; 
////////////////////////////////////////////////////////////////////// 
/* Setup the actual calendar table */ 


calendarTableModel = new DefaultTableModel() { 
    public boolean isCellEditable(int row, int col){ 
      return false; 
    } 
}; 

// setup columns 
for(int i = 0; i < 7; i++) 
    calendarTableModel.addColumn(days[i]); 

calendarTable = new JTable(calendarTableModel); 

calendarTable.getTableHeader().setResizingAllowed(false); 
calendarTable.getTableHeader().setReorderingAllowed(false); 

calendarTable.setColumnSelectionAllowed(true); 
calendarTable.setRowSelectionAllowed(true); 
calendarTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 

calendarTable.setRowHeight(105); 
calendarTableModel.setColumnCount(7); 
calendarTableModel.setRowCount(6); 

En outre, Im sorte de nouveau avec des tables .. comment puis-je faire la répartition rowHeight entre la taille maximale de la table?

+0

Veuillez clarifier ce que vous entendez par ceci: "comment puis-je faire le rowHeight divisé entre la taille maximale de la table?" – lins314159

+0

Eh bien, j'ai 6 lignes, je veux qu'elles remplissent tout le panneau et chaque rangée soit la même hauteur. –

+0

ajoutez ceci JTableHeader header = new JTableHeader(); calendarTable.setTableHeader (en-tête); – sreejith

Répondre

2

Table tête

soit mis calendarTable dans un JScrollPane, ou ajouter calendarTable.getTableHeader() ainsi.

rang hauteur

Ajouter un écouteur à modifier la hauteur de la ligne à chaque fois que la table est redimensionnée.

calendarTable.addComponentListener(new ComponentAdapter() { 
    public void componentResized(ComponentEvent evt) { 
     if (evt.getID() == ComponentEvent.COMPONENT_RESIZED) { 
      calendarTable.setRowHeight(calendarTable.getHeight()/calendarTable.getRowCount()); 
     } 
    } 
}); 
+0

Très bien, la taille de ligne fonctionne très bien, mais même avec le JScrollPane et getTableHeader je ne peux pas obtenir les en-têtes à afficher! JScrollPane scrollPane = nouveau JScrollPane (calendarPanel); –

+0

maintenant! Merci! :) J'ai simplement besoin d'ajouter le scrollPane au panneau plutôt qu'à calendarTable –