使用netbeans我能够使用Jtable显示我的数据库的内容,但问题是,当我运行该文件时,我得到了Jtable,但并不完全显示所有单个内容。因为有些列的段落条目不是几个字
答案 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,其中显示了多行编辑器的好主意。