2012-07-15 93 views
0

使用netbeans我能够使用Jtable显示我的数据库的内容,但问题是当我运行该文件时,我得到了Jtable,但并非所有的内容个人记录完全出现。因为某些列有段落输入不是几句话如何在netbeans中显示Jtable的所有内容

+0

你准确的问题是什么?多行文本不适合显示在表格单元格中。 – 2012-07-15 07:14:36

回答

2

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

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

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

UPDATE

对不起,我简短的注释,我在我的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其中显示了一个伟大的想法多行编辑器。

+0

能否请你详细解释一下,因为我不知道如何去上面写的信息..? – 2012-07-15 11:30:27

+1

['TablePopupEditor'](http://stackoverflow.com/a/3591230/230513)将成为很好的补充编辑器。 – trashgod 2012-07-15 16:15:32

+0

Componet.getGraphics()。getFontMetrics(font) – MadProgrammer 2012-07-15 20:15:30