2011-08-03 5 views
1



JavaアプレットのgetGraphics()メソッドの挿入方法は?

私が言いたいことを第一に、これはJavaのための私のお気に入りのヘルプサイトであるということです。 (そして他の言語)
私の質問は、Javaアプレットのスクリーンショットを撮りたいと思います。
アプレットをjava.net.URLClassLoader経由でロードし、JFrameに追加しました。
私のJFrameで見ることができますが、スクリーンショットにレンダリングしたいと思います。
NORMALアプレットの解決策はここに記載されています:Taking a "screenshot" of a java applet
しかし、このアプレットはpaintメソッドもupdateメソッドも使用せず、getGraphics()メソッドを使用します。
私は既にアプレットスタブを注入しているので、アプレットは自分のウェブサイトにいると思っています。
しかし、アプレットのgetGraphics()メソッドをスクリーンショットにレンダリングするにはどうすればよいですか?

ところで、これは私のコードである:

@Override 
public void actionPerformed(final ActionEvent e) { 
    final String s = e.getActionCommand(); 
    if (s.equals("Screenshot")) { 
     final BufferedImage offScreen = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB); 
     Loader.getApplet().update(offScreen.createGraphics()); 
     try { 
      ImageIO.write(offScreen, "PNG", new File("C:/Users/Mitchell/Pictures/screenshot.png")); 
     } catch (Exception ex) { } 
    } 
} 

、作成すべてが黒800×600 PNG画像(空のBufferedImage)です。

答えて

0

問題が解決する場合は、Appletのサブクラスを作成し、Graphicsオブジェクトを返すようにgetGraphics()をオーバーライドしてから、元のサブクラスを使用してください。

+0

あなたは次のようになります:public class GraphicsInjector extends Applet? – BlazeByte

+0

'GraphicsInjector extends X'を意味します。ここで' X'は作業しようとしているアプレットです。 –

+0

私はすでにそれを考え出しましたが、アプレットは変数です...:P – BlazeByte

関連する問題