【问题标题】:Jtable, use different alignment for each ROWJtable,对每一行使用不同的对齐方式
【发布时间】:2013-02-13 09:44:24
【问题描述】:
我创建了一个表格,需要每隔一行向右对齐,每隔一行默认对齐。
我了解如何对齐行。这是我的默认渲染器
final DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
final DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(DefaultTableCellRenderer.RIGHT);
【问题讨论】:
-
为了更好的帮助,请尽快发布SSCCE,简短,可运行,可编译
标签:
java
swing
jtable
alignment
tablecellrenderer
【解决方案1】:
您必须稍微调整渲染器并覆盖其getTableCellRendererComponent 方法。比如:
DefaultTableCellRenderer 渲染器 = 新 DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable 表,对象值,
boolean isSelected, boolean hasFocus, int row, int column) {
如果 (r % 2 == 0) {
setHorizontalAlignment(SwingConstants.LEFT);
}
别的 {
setHorizontalAlignment(SwingConstants.RIGHT);
}
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
};
尽管创建您自己的扩展 DefaultTableCellRenderer 的适当类并且这样做会是更好的方法。