0

aintComponent()にメソッドを入れましたJPanel。このメソッドは、 を使用してツリーを描画しますGraphics.drawLine()

JButtonこのツリーをズームするために Listener を使用するを置きます。最後にこのrepaint()方法を使用すると、ツリーが大きく再描画されるので問題ありません。

 // Add Listeners on Zooming buttons
 bPlus.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent event){

        Node.setZoom(1);
        repaint();
         }
   });

ただし、MouseMotionListenerJPanel 内でこのツリーを移動するために を使用しました。次に、 を呼び出しrepaint()ても、以前に印刷されたツリーは消去されないため、ツリーが複製されてしまいます。

 addMouseMotionListener(new MouseMotionAdapter() { 
    public void mouseDragged(MouseEvent e) {

    if(mouseHolded) {
    x += e.getX() - mouseX;
    mouseX = e.getX();
    y += e.getY() - mouseY;
    mouseY = e.getY();
    repaint();       // <===

  }
}
  }
);

私は何を間違っていますか?をズームに使用すると以前の木が消去されるのにrepaint()、木を移動すると消去されないのはなぜですか?

4

0 に答える 0