垂直表格标题单元格渲染器(Vertical Table Header Cell Renderer)

编程入门 行业动态 更新时间:2024-10-12 01:27:54
垂直表格标题单元格渲染器(Vertical Table Header Cell Renderer)

我使用了可在此网站中获得的垂直表头Header Cell Renderer它对我很好,但我需要关于如何在一些头部垂直对齐多行的像这样你可以看到示例图像中的线索(坐标几何)。 我试图用适当的\ n字符设置字符串,但我认为我的方法非常简单和错误。 请保持简单。 谢谢!

I used the Vertical Table Header Cell Renderer that is available in this site here It works great for me but I need a clue on how can I have in some headers that are vertically aligned multiple rows like this you can see in the image of the example (Coordinate Geometry). I tried to set the strings with the appropriate \n character but I think my approach is very simplistic and wrong. Please keep it simple. Thank you!

最满意答案

从乔普回答,我做到了这一点。 不要直接更改标签,您可以保留\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; }

From Joop answer, I made this. Instead of changing the label directly you can keep your \n.

In your file DefaultTableHeaderCellRenderer.java, replace getTableCellRendererComponent with this method :

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; }

更多推荐

本文发布于:2023-08-04 17:16:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1419258.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:单元格   表格   标题   渲染器   Vertical

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!