[英]How to set the alignment of data in Defaulttablemodel JTable?
我有這段代碼,其中我將字符串數據作為Object
類型數據動態插入到JTable
中。 我想將插入到表中的數據對齊到中心。 這是我的代碼
private String[] COLUMNS = {"FAMILY MEMBERS", "STAR (NAKSHATRA)"};
private DefaultTableModel model = new DefaultTableModel(COLUMNS, 0){
public boolean isCellEditable(int row, int column) {
return false;
}
};
private JTable table = new JTable(model);
public void addRow(String memb, String star) {
Object[] row = new Object[2];
row[0]=memb;
row[1]=star;
model.addRow(row);
}
我在這個論壇上搜索了類似的查詢,但徒勞無功。 任何對此的提示將不勝感激。
由於這些值都是以字符串開頭的,並且默認渲染器將以任何方式在對象上調用.toString
,為什么不使用String[]
而不是Object[]
呢?
要回答您的問題,請子類化javax.swing.table.DefaultTableCellRenderer
(子類JLabel
)並在那里設置對齊方式( setHorizontalTextPosition
)。 然后,將該渲染器適當地分配給表,列或單元格。
將單個渲染器用於多個單元。 呈現值后,表將安全地重用它。
// Try this .....
private String[] COLUMNS = {"FAMILY MEMBERS", "STAR (NAKSHATRA)"};
private DefaultTableModel model = new DefaultTableModel(COLUMNS, 0)
{
public boolean isCellEditable(int row, int column)
{
return false;
}
};
private JTable table = new JTable(model);
// To center all columns for string data
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
table.setDefaultRenderer(String.class, centerRenderer);
public void addRow(String memb, String star) {
Object[] row = new Object[2];
row[0]=memb;
row[1]=star;
model.addRow(row);
}
// Also you can use like this..
for(int i=0;i<COLUMNS;i++){
table.getColumnModel().getColumn(i).setCellRenderer( centerRenderer );
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.