如何在JTable中加粗整行数据?

3

我正在开发一个消息功能,希望能够加粗显示"read=No"的行,当我点击后,它将变成"read=yes"并取消加粗样式...我已经完成了数据库部分,但我不知道如何渲染表格...因为我在Java方面还很新手...所以,有人可以帮忙吗?非常感谢!


@Charles,您删除了新标签的原因是什么?因为我将使用这两个标签编辑其他与Swing相关的主题... - mKorbel
从一个外部人的角度来看,@mKorbel,这个问题以及你编辑新标签的另外两个问题甚至没有提到任何关于"windowlistener"的内容,第三个问题只在回答中提到了它:你的回答。请记住,标签旨在帮助分类问题,以便有疑问的人可以找到它们。如果您真正相信新标签将有助于对这三个相当陈旧的问题进行分类,请随时恢复我的编辑,但我强烈建议尽快找到更多问题并添加标签。我不是唯一一个积极删除新标签的人! - Charles
@Charles 谢谢您的回复,是的,那正是关于...的问题。WindowListener 是常规的 Java Swings 监听器,由 OP 和回答者在此线程中提到,链接(由 @camickr 提供)用于准备渲染功能。我整理了 Swing 相关的问题,并添加了一些新的标签,看起来它们的一部分已经通过多次编辑确认了,并且针对这两个标签,我可能忘记了 :-) 没关系,它们将再次被创建,这是我的乐趣 :-) - mKorbel
3个回答

9
你可以使用HTML来制作它。
String str = "<html><b>this is bold</b> this is normal </html>";

好的…如果(msg.getRead()=="No"),{ msg.setRead("<html><b>"+msg.getRead()+"</b></html>"); data[i][4] = msg.getRead(); } 我在myTableModel上这样做,但没有显示… - Lucifer

6
我希望加粗一条“read=No”的路线,点击后它将变为“read=yes”,并取消加粗...
使用 表格行渲染 方法根据行中的数据呈现行。在需要时修改给出示例的代码,您可以使用以下代码:
c.setFont(  c.getFont().deriveFont(Font.BOLD) );

2

很抱歉打扰了一个旧帖子,但我正在寻找与此非常相似的东西,并且想出了自己的解决方案(虽然它有点依赖于Jigar的答案)。在我的情况下,我有一个脚本/程序表格,显示当前版本(在第4列)和脚本/程序的最新版本(在第3列)。我希望更容易地发现那些不是最新的。我在其他地方看到的所有解决方案似乎都提供了一种涉及更改DefaultCellRenderer的方法,但没有提到如何在已填充的表格上激活它(或者根本没有提到),因此,我通过“保持简单愚蠢”(KISS简称)的思路来想出下面的代码...希望其他人也会发现它有用。

        for(int r=0;r<table.getRowCount();r++) {
            if(!table.getValueAt(r, 2).equals(table.getValueAt(r, 3))) {
                for(int c=0;c<table.getColumnCount();c++) {
                    table.setValueAt("<html><b>" + table.getValueAt(r, c) + "</b></html>", r, c);
                }
            }
        }

我相信还有其他更有效的方法......但这是我在Java方面(仍然有限)所能想出的并且在我的情况下实际起作用的方法。再次抱歉唤醒旧帖,但我真心希望这可以帮助一些类似于我自己的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接