尝试在 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 标记实现此目的。
最佳答案
您可以创建自己的表格单元格渲染器以使 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);
要定义特定于列的渲染器,您需要定义一个覆盖 getCellRenderer
方法的 JTable
子类
table = new JTable(...) {
public TableCellRenderer getCellRenderer(int row, int column) {
if (column == 2) {
return renderer;
}
// else...
return super.getCellRenderer(row, column);
}
};
现在我对你的问题有了更多的思考,我将把文本分成两列。如有必要,您可以使用右对齐单元格渲染器来右对齐第二列中的文本,该渲染器类似于我为居中文本创建的渲染器。
关于java - Jtable 在同一行左右对齐文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677089/