2011-01-24 4 views

답변

0

테이블 모델에서 변경할 수없는 것은 셀 렌더러에서 제어됩니다.

Code Ranch에서 찍은 예를 살펴 :

import java.awt.*; 
import javax.swing.*; 
import javax.swing.table.*; 

public class AlignRight 
{ 
    public static void main(String[] args) 
    { 
     String[] headers = { "column 1", "column 2", "column 3", "column 4" }; 
     int cols = 4; 
     int rows = 6; 
     String[][] data = new String[rows][cols]; 
     for(int row = 0; row < rows; row++) 
      for(int col = 0; col < cols; col++) 
       data[row][col] = "item " + (row * cols + col + 1); 
     JTable table = new JTable(data, headers); 
     DefaultTableCellRenderer renderer = 
       (DefaultTableCellRenderer)table.getDefaultRenderer(String.class); 
     renderer.setHorizontalAlignment(JLabel.RIGHT); 
     JFrame f = new JFrame(); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.getContentPane().add(new JScrollPane(table)); 
     f.setSize(400,400); 
     f.setLocation(200,200); 
     f.setVisible(true); 
    } 
} 
+0

감사합니다. 다음은 어떻게 해야할지 알 수 있습니다. – HuggyBear

0

나는 "추상적 인 데이터 모델"에 의해 있으리라 믿고있어, 당신은 AbstractTableModel가 클래스를 참조하고 있습니다. 이것은 실제로 칭의를 다루는 올바른 장소가 아닙니다. 테이블 모델은 테이블 뒤에있는 "모델"을 나타냅니다. 당신이하고 싶은 것은이 모델이 화면에 표시되는 방식 ("보기")을 수정하는 것입니다.

적절한 방법은 JTable에 대한 사용자 지정 렌더링을 만드는 것입니다. 귀하의 경우 DefaultTableCellRenderer 클래스를 확장하고 getTableCellRenderer를 재정 의하여 반환 된 구성 요소의 가로 맞춤을 설정할 수 있습니다. 커스텀 렌더러에 대한 더 자세한 정보는 - http://download.oracle.com/javase/tutorial/uiswing/components/table.html#renderer