我使用了此网站提供的垂直表标题单元格渲染器here 它对我来说很有用,但是我需要一个线索,我可以在一些垂直对齐的多个行中的标题,你可以在示例的图像中看到(坐标几何)。我试图用适当的\ n字符设置字符串,但我认为我的方法非常简单和错误。 请保持简单。 谢谢!
答案 0 :(得分:4)
在前面添加<html>
以使其成为HTML文本,并使用<br>
(换行符)代替\n
。
答案 1 :(得分:3)
从乔普回答,我做到了这一点。您可以保留\n
。
在您的文件DefaultTableHeaderCellRenderer.java
中,使用以下方法替换getTableCellRendererComponent
:
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
String str = (value == null) ? "" : value.toString();
BufferedReader br = new BufferedReader(new StringReader(str));
String line;
StringBuilder sb = new StringBuilder("<HTML>");
try {
while ((line = br.readLine()) != null) {
sb.append(line).append("<br/>");
}
} catch (IOException ex) {
ex.printStackTrace();
}
sb.append("</HTML>");
super.getTableCellRendererComponent(table, sb,
isSelected, hasFocus, row, column);
JTableHeader tableHeader = table.getTableHeader();
if (tableHeader != null) {
setForeground(tableHeader.getForeground());
}
setIcon(getIcon(table, column));
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return this;
}