Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable抽象模型中的右对齐数字字段_Java_Swing_Jtable - Fatal编程技术网

Java JTable抽象模型中的右对齐数字字段

Java JTable抽象模型中的右对齐数字字段,java,swing,jtable,Java,Swing,Jtable,有人知道如何在JTableabstract数据模型中集中数据吗 默认设置似乎是右对齐。这是无法从表格模型更改的,它由单元格渲染器控制 请看以下示例: 我假设通过抽象数据模型,您指的是AbstractTableModel类。事实上,这不是处理理由的正确位置。表格模型表示表格后面的模型。您要做的是修改此模型在视图中的显示方式 执行此操作的适当方法是为JTable创建自定义渲染。在本例中,可以扩展DefaultTableCellRenderer类并覆盖getTableCellRenderer以设置返回

有人知道如何在JTableabstract数据模型中集中数据吗


默认设置似乎是右对齐。

这是无法从表格模型更改的,它由单元格渲染器控制

请看以下示例:


我假设通过抽象数据模型,您指的是AbstractTableModel类。事实上,这不是处理理由的正确位置。表格模型表示表格后面的模型。您要做的是修改此模型在视图中的显示方式


执行此操作的适当方法是为JTable创建自定义渲染。在本例中,可以扩展DefaultTableCellRenderer类并覆盖getTableCellRenderer以设置返回组件的水平对齐方式。有关自定义渲染器的更多信息-

谢谢,OK将决定下一步要做什么。
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);  
   }  
}