これが私の問題です:
反復するたびに画像のリストが返されるアプリケーションがあります。画像のサイズは異なり、表示される画像の数は毎回異なります。
作成するjPanelの数を知らなくても、jFrameにすべての画像を表示する方法はありますか?それを行う簡単な方法はありますか?
Obs .:画像は比較目的で使用されるため、並べて表示するか、一覧表示する必要があります。
Obs.2:表示される画像の数は、毎回約20〜60です。
ありがとう
これが私の問題です:
反復するたびに画像のリストが返されるアプリケーションがあります。画像のサイズは異なり、表示される画像の数は毎回異なります。
作成するjPanelの数を知らなくても、jFrameにすべての画像を表示する方法はありますか?それを行う簡単な方法はありますか?
Obs .:画像は比較目的で使用されるため、並べて表示するか、一覧表示する必要があります。
Obs.2:表示される画像の数は、毎回約20〜60です。
ありがとう
すべての画像を同じパネルに表示したいので、TreeMapアルゴリズムを使用して、画像の寸法を各画像の重みとして使用してパネルを表示することをお勧めします。次に、各パネルに収まるように各画像のサイズを変更します。
(出典:tumblr.com)
ここでJavaの実装を参照してください:http://plindenbaum.blogspot.com/2009/08/treemap-for-friendfeed.html
このソリューションは機能するはずです:
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]))));
}
}
これにJInternalFrameを使用すると、画像をドラッグしてサイズを変更することもできます。
あなたの質問から、私はあなたがで画像を表示することができると思いますJPanel
。その場合、リストを保持し、JPanels
このリストを動的に更新できます。もちろん、に描画するレイアウトJFrame
は完全にあなた次第ですが、このような仕事では、GridLayout
またはを使用することをお勧めしますBoxLayout
。
JPanelsのリストを保持するには:
ArrayList<JPanel> panelList = new ArrayList<JPanel>();
...
panelList.add(new JPanel());
...
panelList.clear();