Вертикальный рендерер ячейки таблицы - PullRequest
3 голосов
/ 25 марта 2012

Я использовал средство визуализации ячеек заголовка вертикальной таблицы, которое доступно на этом сайте здесь Это прекрасно работает для меня, но мне нужно понять, как я могу использовать некоторые заголовки, которые выровнены по вертикали несколькими строками, как этоВы можете видеть на изображении примера (Coordinate Geometry).Я попытался установить строки с соответствующим символом \ n, но я думаю, что мой подход очень упрощен и неправильн.Пожалуйста, будь проще.Спасибо!

Ответы [ 2 ]

4 голосов
/ 25 марта 2012

Впереди поставьте <html>, чтобы сделать его HTML-текстом, и используйте <br> (разрыв строки) вместо \n.

3 голосов
/ 25 марта 2012

Из ответа Joop я сделал это.Вместо того, чтобы менять метку напрямую, вы можете сохранить \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;
      }
...