2010-04-22 3 views
1

Эй, ребята, работаем над календарем событий. У меня возникли некоторые проблемы с получением моих голов столбцов для отображения .. вот кодВопросы Java Swing Table

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); 

Кроме того, Im вроде нового с таблицами .. как я могу сделать раскол RowHeight между размером макс стола?

+0

Просьба уточнить, что вы подразумеваете под этим: «Как я могу сделать rowHeight разделить между максимальным размером таблицы?» – lins314159

+0

Ну, у меня 6 строк, я хочу, чтобы они заполнили всю панель, и каждая строка была одинаковой высоты. –

+0

добавить это JTableHeader header = new JTableHeader(); calendarTable.setTableHeader (заголовок); – sreejith

ответ

2

Заголовок таблицы

Либо поместить calendarTable в JScrollPane, или добавить calendarTable.getTableHeader(), а также.

Высота строки

Добавить слушателя изменить высоту строки всякий раз, когда таблица изменяется.

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

Хорошо, ну размер строки отлично работает, но даже с JScrollPane и getTableHeader я не могу получить заголовки, чтобы их не играть! JScrollPane scrollPane = новый JScrollPane (calendarPanel); –

+0

теперь работает! благодаря! :) Мне просто нужно было добавить scrollPane к панели, а не к CalendarTable –