2012-03-25 70 views
3

我使用了本網站中可用的垂直表格標題單元格渲染器here 它對我很好,但我需要關於如何在某些垂直對齊多行的標題中找到像這樣的線索您可以在示例(座標幾何)的圖像中看到。我試圖用適當的\ n字符設置字符串,但我認爲我的方法非常簡單和錯誤。 請保持簡單。 謝謝!垂直表格標題單元格渲染器

回答

3

從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; 
     } 
+0

謝謝你的代碼! – Vagelism 2012-03-25 09:36:53

+1

不客氣。如果你希望標籤在'while'中被使用,請使用':'sb.append(「

」).append(line).append(「
」);' – 2012-03-25 09:45:36

+0

再次感謝你的幫助!只需要我的作品! – Vagelism 2012-03-25 09:47:24

4

在前面放<html>使其成爲HTML文本,並使用<br>(換行符)而不是\n

+0

謝謝!我在一些搜索中看到了這個解決方案,但我不確定是否可以在Java應用程序或網頁上實現它。 – Vagelism 2012-03-25 09:19:57

+0

謝謝!按我的意願工作。 – Vagelism 2012-03-25 09:25:31

+0

好的!如果你有興趣,我做了一個讓它「不可見」的方法。 – 2012-03-25 09:29:11