1

これが私の問題です:

反復するたびに画像のリストが返されるアプリケーションがあります。画像のサイズは異なり、表示される画像の数は毎回異なります。

作成するjPanelの数を知らなくても、jFrameにすべての画像を表示する方法はありますか?それを行う簡単な方法はありますか?

Obs .:画像は比較目的で使用されるため、並べて表示するか、一覧表示する必要があります。

Obs.2:表示される画像の数は、毎回約20〜60です。

ありがとう

4

4 に答える 4

5

すべての画像を同じパネルに表示したいので、TreeMapアルゴリズムを使用して、画像の寸法を各画像の重みとして使用してパネルを表示することをお勧めします。次に、各パネルに収まるように各画像のサイズを変更します。

代替テキスト
(出典:tumblr.com

ここでJavaの実装を参照してください:http://plindenbaum.blogspot.com/2009/08/treemap-for-friendfeed.html

于 2010-01-28T16:18:02.407 に答える
3

このソリューションは機能するはずです:

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]))));
  }
 }
于 2010-01-28T15:33:03.650 に答える
2

これにJInternalFrameを使用すると、画像をドラッグしてサイズを変更することもできます。

于 2010-01-28T16:47:41.877 に答える
1

あなたの質問から、私はあなたがで画像を表示することができると思いますJPanel。その場合、リストを保持し、JPanelsこのリストを動的に更新できます。もちろん、に描画するレイアウトJFrameは完全にあなた次第ですが、このような仕事では、GridLayoutまたはを使用することをお勧めしますBoxLayout

JPanelsのリストを保持するには:

ArrayList<JPanel> panelList = new ArrayList<JPanel>();
...
panelList.add(new JPanel());
...
panelList.clear();
于 2010-01-28T15:33:48.130 に答える