3

JPanel のようなコンポーネントを、選択したグラフィックに、画面のように描画するにはどうすればよいですか?

グーグルで運がなかった。

私が試したこと:

JPanel p = new JPanel();
p.setSize(32, 32);
p.setLocation(8, 8);

p.add(new JLabel(...));
p.add(new JLabel(...));
p.add(new ImageIcon(...));

Graphics g = getSomeGraphics();
p.paint(g);

ただし、この最後の命令により、

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.RepaintManager.getVolatileOffscreenBuffer(Unknown Source)
    at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    ...
4

2 に答える 2

2

このは、の既存のインスタンスpanel.paint(g2d)をレンダリングするためにを使用する方法を示しています。次に、画像が拡大縮小され、参照用にパネルの下に表示されます。JPanelJLabelBufferedImage

画像

于 2013-02-22T19:47:59.247 に答える
1

BufferedImage に描画していると思われるかもしれませんが、実際には時々そうしています。

コンポーネント イメージも作成できるScreen Imageを参照してください。

于 2013-02-23T00:44:04.680 に答える