0

次のような状況があるとしましょう。

JPanel panelp=new JPanel();
paintSomething(panelp.getGraphics();

そして別のオブジェクトのどこかで、メソッド:

void paintSomething(Graphics g){ /*code*/ }

paintComponentのメソッドをオーバーライドしたくありませんpanelp。のを使用しpanelpたメソッドから何かをペイントするにはどうすればよいですか? paintSomethingGraphicspanelp

4

2 に答える 2

4

whatever.getGraphics()スナップショットは、次の場合に消えるスナップショットです。

  • 最初の塗り直し後

  • JComponetsMouseまたはから内部的に再描画Key Eventsされ、これらのイベントはコンクリートに実装されますJComponets API

  • の簡単な使用例はwhatever.getGraphics()、プリンタに印刷するか、現在のGUIを印刷画面としてJPEGやPGNファイルなどに保存することです。

基本的なものは2Dグラフィックスで説明されています

于 2012-06-08T18:00:45.980 に答える
3

You could draw your stuff in the paintSomething into a BufferedImage which you can then draw to the panel by overriding paintComponent

于 2012-06-08T17:57:18.770 に答える