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

时间:2012-07-15 06:12:05

标签: java swing netbeans jtable

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

1 个答案:

答案 0 :(得分:2)

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

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

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

<强>更新

对于简短的评论感到抱歉,我在我的iPad上。

根据UI的状态,您有两种选择。您可以从JTables图形上下文中获取对FontMatrics的引用。这仅在JTable已实现(在屏幕上呈现)

时才有效
FontMetrics fm = myTable.getFontMetrcis(myTable.getFont());
int height = fm.getHeight();

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

或者,如果用户界面还没有实现,您需要构建兼容的图像,从中提取字体度量。这有点复杂,因为它开始处理图形配置和设备...

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,其中显示了多行编辑器的好主意。