Метод рисования в Java - PullRequest
       1

Метод рисования в Java

0 голосов
/ 13 января 2012

Я хочу спросить о методе Paint в Java, когда я выполняю свой код, вызывается метод 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 ]

1 голос
/ 13 января 2012

Обычно вы должны переопределить paintComponent (), который в конечном итоге вызывается paint ().Сделайте что-нибудь из ваших интересных вещей в paintComponent ().

Не уверен, что я понимаю остальную часть вашего вопроса - см. Ответ Эрнеста.

1 голос
/ 13 января 2012
  1. Добавьте boolean переменную-член doDraw в ваш класс.Отметьте его как volatile.
  2. В кнопке ActionListener для кнопки переключите значение doDraw.Если это правда, сделайте это ложным;если оно ложно, сделайте его истинным.
  3. Наконец, заключите тело вашего paint() метода в

    if (doDraw) {// Остальной код здесь} *

И вот, пожалуйста!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...