2012-07-15 67 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

相關問題