java中的paint方法

时间:2012-01-12 20:47:35

标签: java graphics

我想询问java中的Paint方法,当我执行我的代码时,调用Paint方法。

那么如何停止绘画方法?

注意:我做了一个按钮来执行绘制方法。

通常当我执行代码时,默认情况下会调用Paint方法..因此我需要在单击它时停止它并创建我的按钮,调用Paint方法。

这里是代码

import javax.swing.JApplet;
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.util.Random;

public class RandDraw extends JApplet  implements ActionListener {

JButton Draw1 = new JButton ("Draw");

public void init() {
  this.setLayout (new FlowLayout());
  this.add(Draw1);
  Draw1.addActionListener(this);
}

public void actionPerformed(ActionEvent e){
  if(e.getSource()==Draw1)
    repaint();
  }
}

public void paint(Graphics g){
  for(int i=0;i<50;i++){
    g.setColor
      (new Color(i*655%256,i*355%256,i*958%256));
    Random r = new Random ();
    int rr= r.nextInt(40)+10;
    Random r1 = new Random ();
    int rr1= r1.nextInt(70)+10;
    Random r2 = new Random ();
    int rr2= r2.nextInt(10)+10;
    g.fillOval(2*rr1,rr*rr2,O+O1*2,O+O1*2);
  }
}
}

2 个答案:

答案 0 :(得分:1)

  1. 向您的班级添加boolean成员变量doDraw。将其标记为volatile.
  2. 在按钮的ActionListener中,切换doDraw的值。如果这是真的,那就把它弄错;如果它是假的,那就让它成真。
  3. 最后,使用

    paint()方法的正文括起来

    if(doDraw){     //这里的其余代码 }

  4. 你去了!

答案 1 :(得分:1)

通常你应该覆盖paintComponent(),它最终会被paint()调用。在paintComponent()中做任何你喜欢的东西。

我不确定我理解你的其他问题 - 请参阅欧内斯特的回应。