2012-06-08 49 views
4

我已經完成了一些相當不錯的搜索,並且我不能很好地尋找即時消息。基本上我想要一個JPanel中的JTable,並且讓JPanel根據JTable的大小重新調整自己的大小。我知道實現JTable的通常方法是使用JScrollpane,但在這種情況下,它是不必要的,它使我的程序看起來......凌亂。如何在沒有JScrollpane的情況下製作JTable

我無法找到我需要的答案的原因是每次有人在JPanel中詢問JTable時,都會有人給出將它放入滾動窗格的答案。我意識到使用scrollpane的好處,但在這種情況下,它們不是有利的。

+0

您可能需要添加屏幕截圖來解釋爲什麼您覺得它看起來很凌亂? –

+0

我想我應該解釋一下。即時通訊使用JGraphX庫並嘗試創建自定義頂點佈局。它通過使用正常的擺動部件來完成。每個頂點都有一個包含不包含大量行和5列的信息的表。在每個節點上都有一個滾動窗口很麻煩,只有信息易於瀏覽的jtable會使它更直觀,以及更清潔 – user1027959

回答

7
  1. 是可以添加JTable to the JPanel,發現有幾排,填補實際屏幕分辨率

  2. 必須添加TableHeader separatelly到容器過,否則不添加,也不是可見的,爲JTableJScrollPane不需要添加或定義TableHeader separatelly

  3. 更好的可能是從JScrollPane.setBorders(null),並刪除邊框禁用VERTICALHORIZONTAL_SCROLLBARNEVER

  4. 縮水更廣泛的JScrollPane強得多的JTables Dimension可以使用table.setPreferredScrollableViewportSize(table.getPreferredSize());

+0

非常感謝。我搜索這些論壇和JGraphx論壇永遠不會看到這個帖子。標題不是真正的問題。所以生病可能只是做他們在鏈接中做的事情! – user1027959

+0

很高興爲您效勞 – mKorbel

+0

@mKorbel你有任何例子可以將JTableHeader添加到容器或JComponent中嗎? – Igor

0

嘗試重寫你的JPanel的getPreferredSize()方法,並返回你的JTable的getPreferredSize()值:

final JTable table = new JTable(); 

JPanel panel = new JPanel() { 
    public Dimension getPreferredSize() { 
     return table.getPreferredSize(); 
    } 
} 
相關問題