3

我使用了此站点中可用的垂直表格标题单元格渲染器, 它对我来说非常有用,但我需要一个线索来了解如何在一些垂直对齐的多行标题中拥有这样的示例,您可以在示例的图像中看到(坐标几何)。我尝试使用适当的 \n 字符设置字符串,但我认为我的方法非常简单且错误。请保持简单。谢谢!

4

2 回答 2

4

在前面放置<html>以使其成为 HTML 文本,并使用<br>(换行符) 而不是\n.

于 2012-03-25T09:06:45.087 回答
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;
      }
于 2012-03-25T09:28:34.973 回答