画像をScrollPane(Panel上)に設定し、ImageをPanelの幅に設定したいとします。画像をScrollPaneに設定して幅を調整します
Imageを大きくしたり、ScrollPaneにラベルを設定するために、JLabelを使用します。
画像をパネルの幅に合わせたい場合、高さは同じプロプリットにする必要があります。 ScrollPaneのイメージのビットを重ねて垂直スクロールバーを取得していること、
BufferedImage image;
JLabel picLabel = new JLabel();
int w = pInfo.getWidth();
pInfo.removeAll();
try {
image = ImageIO.read(getClass().getResourceAsStream("/Matrix/ausstoepseln.jpg"));
picLabel = new JLabel(new ImageIcon(image));
} catch (IOException e1) {
e1.printStackTrace();
}
JScrollPane scrollP = new JScrollPane (picLabel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollP.setBorder(new TitledBorder (new EtchedBorder(), "Info"));
pInfo.add(scrollP);
問題がある:
はここ(pInfoは、私のJPanelに画像を追加することです)私のコードです。 イメージのサイズ変更(ImgSclrまたはGraphic2Dによる)は動作しません。なぜなら、ScrollPaneも短くなるからです。 この後にラベルを追加してScrollPaneの境界を設定しようとしましたが、どちらも機能しませんでした。
これを行う方法はありますか?
thx、音が良い、私はそれを試してみましょう。 – Cauti
Unortunally私はそれを動作させることはありません。 StretchIconはイメージをロードしていないようです。コードは以下の変更を除いて上記のとおりです: 'picLabel.setIcon(new StretchIcon(image)); ScrollablePanel scrollP =新しいScrollablePanel(新しいMigLayout( ""、 "[100%、grow]"、 "100%、grow")); scrollP.add(picLabel); pInfo.add(scrollP); ' 出力は空です。 ImageIconを使用すると画像が表示されますが、ScrollablePanelのために実際のサイズになります。 – Cauti
MigLayoutは使用しないでください。単純なBorderLayoutが行います。とにかく、StretchIconが "比例サイズ"を使用するときに大きくサイズ変更されないことが分かりました。だから、この解決策はうまくいかないでしょう。 – camickr