2010-04-22 7 views
1

안녕하세요, 이벤트 캘린더에서 작업하고 있습니다. 여기 .. ​​몇 가지 문제가 내 열 헤드가 표시 얻는 데 코드 또한자바 스윙 테이블 질문

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

, 어떻게 테이블의 최대 크기 사이의 rowHeight에 분할을 할 수 있습니다 .. 테이블과 새의 임 정렬은?

+0

"테이블의 최대 크기 사이에 rowHeight 분할을 만들려면 어떻게해야합니까?" – lins314159

+0

글쎄, 난 6 행을 가지고, 나는 그들에게 전체 패널을 작성하고 각 행이 같은 높이가되고 싶어요. –

+0

이것을 더하기 JTableHeader header = new JTableHeader(); calendarTable.setTableHeader (header); – sreejith

답변

2

테이블 헤더

어느도) JScrollPane의 calendarTable에 넣어 또는 calendarTable.getTableHeader을 (ADD.

행 높이

테이블의 크기가 변경 될 때마다 행 높이를 변경 청취자를 추가합니다.

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

지금 사용해보세요! 감사! :) 단순히 calendarTable 대신에 scrollPane을 패널에 추가하기 만하면되었습니다. –