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