這是我的問題:我可以用多個圖像創建JFrame嗎?
我有一個應用程序,每次迭代它返回給我一個圖像列表。這些圖像具有不同的尺寸,並且每次顯示的圖像數量都不相同。
有沒有辦法在jFrame中顯示所有圖像而無需知道要創建的jPanel的數量?有沒有簡單的方法來做到這一點?
Obs .:圖像應該同時顯示,如並排或列出,因爲它們用於比較目的。
觀察點2:每次顯示的圖像數量在20-60左右。
感謝
這是我的問題:我可以用多個圖像創建JFrame嗎?
我有一個應用程序,每次迭代它返回給我一個圖像列表。這些圖像具有不同的尺寸,並且每次顯示的圖像數量都不相同。
有沒有辦法在jFrame中顯示所有圖像而無需知道要創建的jPanel的數量?有沒有簡單的方法來做到這一點?
Obs .:圖像應該同時顯示,如並排或列出,因爲它們用於比較目的。
觀察點2:每次顯示的圖像數量在20-60左右。
感謝
從你的問題我認爲你就能夠顯示在JPanel
圖像。在這種情況下,您可以保留JPanels
的列表並動態更新此列表。當然,對JFrame
繪製的佈局完全取決於你,但像這樣的工作,你可能需要使用GridLayout
或BoxLayout
。
爲了保持JPanels的列表:
ArrayList<JPanel> panelList = new ArrayList<JPanel>();
...
panelList.add(new JPanel());
...
panelList.clear();
這個解決方案應該工作:
class MyFrame extends JFrame
{
MyFrame(Image images[])
{
JTabbedPane tabbed= new JTabbedPane();
setContentPane(tabbed);
for(int i=0;i< images.length;++i)
{
tabbed.addTab("Image "+i, new JScrollPane(new JLabel(new ImageIcon(images[i]))));
}
}
其實這使得很多更有意義比我的答案,所以+1 – 2010-01-28 15:34:27
@Pierre,我並沒有說我的問題,但用戶應該能夠看到所有的圖像在同一時間。我不確定這可以用JTabbedPane完成。謝謝 – marionmaiden 2010-01-28 15:48:34
正如你希望看到同樣的面板中的所有圖像,我建議你使用一個TreeMap Algorithm使用圖像的尺寸爲重,以顯示您的面板的每個圖像。然後,調整每個圖像的大小,使其適合每個面板。
alt text http://27.media.tumblr.com/NngfN9gsDqq8kydsfeAglIJXo1_400.png
看到一個Java實現這裏:http://plindenbaum.blogspot.com/2009/08/treemap-for-friendfeed.html
如果使用JInternalFrame這一點,你可以拖動圖片和改變大小了。
@Erkan,你的解決方案對我來說工作得很好。謝謝 – marionmaiden 2010-01-29 10:57:06