gpt4 book ai didi

java - 如何在netbeans中显示Jtable的所有内容

转载 作者:行者123 更新时间:2023-12-02 07:41:44 26 4
gpt4 key购买 nike

使用netbeans,我能够使用Jtable显示数据库的内容,但问题是,当我运行该文件时,我得到了Jtable,但并不是所有单独记录的内容都完全显示。因为有些栏目有一个段落条目而不是几个字

最佳答案

您必须能够知道 jtable 使用的行数和文本高度。从那里您可以设置行高(表格全局或单个行)。

然后,您需要一个能够显示多行内容的表格单元格渲染器。

根据您的要求,您可能最好显示单元格的一行摘要并允许工具提示显示完整内容(取决于内容的大小)或带有不可编辑文本的弹出窗口组件

更新

抱歉,我的评论很短,我当时正在使用 iPad。

您有两种选择,具体取决于您的 UI 所处的状态。您可以从 JTables 图形上下文中获取对 FontMatrics 的引用。仅当 JTable 已实现(呈现在屏幕上)时这才有效

FontMetrics fm = myTable.getFontMetrcis(myTable.getFont());
int height = fm.getHeight();

当然,这个示例假设您使用与 JTable 相同的字体。如果没有,您需要提供正确的字体。

或者,如果 UI 尚未实现,您需要构建一个兼容的图像并从中提取字体规范。这有点复杂,因为它开始处理图形配置和设备......

BufferedImage img = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().createCompatibleImage(1, 1, Transparency.TRANSLUCENT);

Graphics2D g2d = img.createGraphics();
FontMetrics fm = g2d.getFontMetrics(font);
int height = fm.getHeight();
g2d.dispose();

一旦获得字体的高度,您应该能够计算文本的高度,假设文本被分成行(或者您可以自己分割行)。现在,如果情况并非如此(或者您想提供自己的文字/换行),那么这会变得越来越复杂。

您可以在这里查看http://docs.oracle.com/javase/tutorial/2d/text/drawmulstring.html了解如何使用graphics2D渲染文本作为提示(您可以根据需要使用它将文本分成组)

您可能还想查看http://www.jroller.com/santhosh/entry/multiline_in_table_cell_editing1这展示了多行编辑器的好主意。

关于java - 如何在netbeans中显示Jtable的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11489850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com