числовые поля с выравниванием по праву в абстрактной модели Java JTable - PullRequest
1 голос
/ 24 января 2011

Кто-нибудь знает, как центрировать данные в JTableabstract модели данных.

Кажется, что по умолчанию используется правое выравнивание.

Ответы [ 2 ]

0 голосов
/ 24 января 2011

Я предполагаю, что под «абстрактной моделью данных» вы ссылаетесь на класс AbstractTableModel. Это на самом деле не то место, где нужно обращаться с оправданием. Модель таблицы представляет «модель» за столом. Вам нужно изменить способ отображения этой модели на экране («просмотр»).

Подходящий способ сделать это - создать пользовательский рендер для JTable. В вашем случае вы можете расширить класс DefaultTableCellRenderer и переопределить getTableCellRenderer, чтобы установить горизонтальное выравнивание возвращаемого компонента. Для получения дополнительной информации о пользовательских средствах визуализации - http://download.oracle.com/javase/tutorial/uiswing/components/table.html#renderer

0 голосов
/ 24 января 2011

Это то, что вы не можете изменить в табличной модели, оно управляется из средств визуализации ячеек.

Взгляните на этот пример, взятый из 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);  
   }  
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...