我想询问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);
}
}
}
答案 0 :(得分:1)
boolean
成员变量doDraw
。将其标记为volatile.
ActionListener
中,切换doDraw
的值。如果这是真的,那就把它弄错;如果它是假的,那就让它成真。最后,使用
将paint()
方法的正文括起来
if(doDraw){ //这里的其余代码 }
你去了!
答案 1 :(得分:1)
通常你应该覆盖paintComponent(),它最终会被paint()调用。在paintComponent()中做任何你喜欢的东西。
我不确定我理解你的其他问题 - 请参阅欧内斯特的回应。