2016-09-29 8 views
0

私はJavaを使い慣れていないので、ウィンドウのサイズを変更した後に画像が画面に残っていることを確認する方法を見つけようとしています。私は投稿する前に答えを探してみましたが、私が探しているものを見つけることができません。サイズ変更後の画像の保持方法は?

これを行うにはどのような方法がありますか、どうすればいいですか?画像が滞在してもらうために

public void mouseDragged(MouseEvent DrawingEvent) { 
    Graphics g = getGraphics(); 
    g.drawLine(DrawPoint.x, DrawPoint.y, DrawingEvent.getX(), DrawingEvent.getY()); 
    DrawPoint = new Point(DrawingEvent.getX(), DrawingEvent.getY()); 
} 

public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
} 
} 

答えて

2

:ここ

は、私が「重要」のコードを考えるものです

  • は、SwingコンポーネントにgetGraphics()を呼び出すことによって取得したGraphicsオブジェクトを使用しないでください。 。これらのオブジェクトは短命であり、消えるイメージやNullPointerExceptionsを引き起こす危険性があります。
  • JPanelのpaintComponentメソッドには、Swing drawing tutorialsと同じように、JVMによって与えられたGraphicsオブジェクトを描画します。
  • BufferedImageを描画し、その画像をJPanelのpaintComponentメソッド内に表示することができます。これは、実行しようとしていることを達成する最も簡単な方法です。
  • また、PointやLine2Dなどの非GUI論理オブジェクトのArrayListを作成し、これらのコレクションを使用してJPanelのpaintComponentメソッド内の描画方法を指示できます。

For example

+0

* "あなたはBufferedImageの上に描画し、その画像を表示することができます.." * 'JLabel'に - 画像が更新されたときに、単に') 'jLabel.repaint(呼び出します。カスタム塗装の理由がない(さらに)理由がないときは、このアプローチが好きです。 1つは、不適切なペイントメソッドオーバーライドの潜在的な落とし穴を回避します。 –

関連する問題