尝试在Jtable上实现此目的。
我试图将两个单词对齐,如左侧一个,右侧另一个,但在同一行。
String html="<html><div style='float:left;width:50%;'>left</div><div style='float:right;width:50%;'>right</div></html>";
Object rowData[][] = { { html, "Column2-data"}};
不幸的是它没有用。我也尝试使用 p 标记和 font 标记。
请帮助我如何使用HTML标记实现此目的。
答案 0 :(得分:3)
您可以创建自己的表格单元格渲染器,使文本在JTable中居中
public class CenterCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
JLabel renderedLabel = (JLabel) super
.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
renderedLabel.setHorizontalAlignment(JLabel.CENTER);
return renderedLabel;
}
}
要为整个表使用此表格单元格渲染器:
TableCellRenderer renderer = new CenterCellRenderer();
table.setDefaultRenderer(Object.class, renderer);
要定义列特定的渲染器,您需要定义覆盖JTable
方法的getCellRenderer
子类
table = new JTable(...) {
public TableCellRenderer getCellRenderer(int row, int column) {
if (column == 2) {
return renderer;
}
// else...
return super.getCellRenderer(row, column);
}
};
现在我已经考虑了你的问题了,我将文本放在两列中。如有必要,您可以使用右对齐单元格渲染器右对齐第二列中的文本,类似于我为居中文本创建的单元格。