2011-05-18 21 views
26

nagłówek kolumny niewidoczny w moim JTable i utworzyłem JPanel i dodałem JTable do JPanel.Nagłówek kolumny JTable nie jest widoczny

Object rowData[][] = { { "Row1-Column1", "Row1-Column2", "Row1-Column3"}, 
       { "Row2-Column1", "Row2-Column2", "Row2-Column3"} }; 
      Object columnNames[] = { "Column One", "Column Two", "Column Three"}; 
      JTable jTable = new JTable(rowData, columnNames); 
+5

wierzę trzeba umieścić go wewnątrz JScrollPane do nazwy kolumn, aby wyświetlić ... –

+0

wo rks dodając JTable do JScrollPane – Lalchand

+0

Nie zapomnij zaznaczyć odpowiedzi Amira jako "poprawne". @Dilum: Dlaczego to był komentarz, a nie odpowiedź? –

Odpowiedz

49

API dla JTable stwierdza:

„Należy pamiętać, że jeśli chcesz użyć JTable w autonomicznym widzenia (poza z JScrollPane) i chce nagłówek wyświetlany, można go dostać używając getTableHeader() i wyświetlaj osobno. "

Lub po prostu dodać tabelę do ScrollPane i dodaj swoją ScrollPane do panelu ...

14

Oto jak dodać nagłówek do JTable bez użycia JScrollPane:

int rows = 21; 
int cols = 3; 
JTable table = new JTable(rows, cols); 
JTableHeader header = table.getTableHeader(); 
JPanel panel = new JPanel(); 
panel.setLayout(new BorderLayout()); 
panel.add(header, BorderLayout.NORTH); 
panel.add(table, BorderLayout.CENTER); 
2

Możesz dodać następujący kod do kodu

DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); 
renderer.setPreferredSize(new Dimension(0, 0)); 
table.getTableHeader().setDefaultRenderer(renderer); 
+1

.. aby osiągnąć co ..? – kleopatra

+0

usunie domyślny nagłówek Jtable .. domyślnie wyświetli się z A, B, C jako nagłówkiem .. możemy je usunąć za pomocą powyższego kodu. – jcrshankar

Powiązane problemy