2011-01-24 61 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 2011-01-24 20:28:32

0

我被「抽象數據模型」假設,你指的是AbstractTableModel的類。實際上這不是處理理由的正確地方。表格模型代表表格背後的「模型」。你想要做的是修改這個模型顯示屏幕的方式(「視圖」)。

執行此操作的適當方法是爲JTable創建自定義渲染。在你的情況下,你可以擴展DefaultTableCellRenderer類並覆蓋getTableCellRenderer來設置返回組件的水平對齊。有關自定義渲染器的更多信息 - http://download.oracle.com/javase/tutorial/uiswing/components/table.html#renderer