2012-10-14 58 views
2

我期待創建一個ListView來填充指定目錄中的許多圖像。這一切都很好,但令人煩惱的是,我似乎無法找到一種方法讓ListView包裝,或以多列顯示(目前它只是每行一個圖像,考慮到沒有文本,這令人討厭。)JavaFX中的多列(包裝)ListView 2

使用Swing的JList可以通過jList.setLayoutOrientation(JList.HORIZONTAL_WRAP);來完成,但是我在JavaFX 2中看不到任何等價物 - 我是否錯過了某些東西?

+0

自定義的ListView的細胞工廠包括HBox中的例子。將圖像和文字放入HBox。 –

回答

3

javafx.scene.control.ListView不支持這種功能。

鑑於你只是把圖像放在裏面,你可能只想用TilePane來顯示它們。

+0

謝謝,'TilePane'作爲替代品效果很好。 – berry120

4

由於我有完全相同的問題,我也調查了這個方向。如果你只有少量物品,TilePane可能是一個解決方案,但如果你有很多物品,它會變得非常慢並且消耗大量資源。 (TilePane在設計上不支持UI虛擬化,也就是說,重複使用/回收不再位於視口中的項目節點)。

因此,我的想法是子類化ListView並創建一個WrappedListView,但我已經無意中通過一個完美的解決方案:ControlsFX是一個開源的JavaFX控件集合,它正好有一個支持虛擬化的GridView控件。

ControlsFX的GridView

GridView in Action

以下是在ControlsFX所有控件的概述。 http://fxexperience.com/controlsfx/features/

用於下載庫,他們所提供的標準方式,如Maven的依賴在其發展的網站:https://bitbucket.org/controlsfx/controlsfx/