Méthode de peinture en java
Je voudrais vous interroger sur la méthode de Peinture en java quand j'execute mon code de la méthode de Peinture est appelée.
Alors, comment arrêter la méthode de peinture?
note: j'ai fait un bouton pour faire la méthode de peinture.
Généralement quand j'execute le code de la méthode de Peinture qui est appelé par défaut .. donc j'ai besoin d'arrêter et de faire mes bouton lorsque je clique sur elle , appelle la méthode de Peinture.
ici le code
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);
}
}
}
- Vous devez nous donner un peu plus d'informations sur ce que vous êtes précisément d'essayer de faire. Utilisez-vous Swing? Généralement peinture méthodes seulement quand il y a une raison pour eux d'être redessiné. Avez-vous de code dans votre méthode de peinture qui pourrait causer à votre programme à exécuter dans une boucle sans fin ou de bloquer / gel?
- Ne cliquez pas sur le bouton??? La Question n'est pas clair pour moi...
- Il s'arrête après le code a terminé...
- je n'ai pas utilisé de Swing Généralement quand j'execute le code de la méthode de Peinture qui est appelé par défaut .. donc j'ai besoin d'arrêter et de faire mes bouton lorsque je clique sur elle , appelle la méthode de Peinture..
- ce ne pas sembler une bonne façon de résoudre votre problème. Nous en dire un peu plus sur ce que vous êtes en train de faire et, peut-être que nous pouvons vous proposer une alternative.
- Saviez-vous que vous pouvez réutiliser les générateurs aléatoires et obtenir une seconde, une nouvelle valeur aléatoire d'eux? Déposez vos
new Random
, un seul suffit. - aha merci de m'informer....
Vous devez vous connecter pour publier un commentaire.
boolean
variable membredoDraw
à votre classe. Marquer commevolatile.
ActionListener
pour le bouton basculer la valeur dedoDraw
. Si c'est vrai, le rendre faux; si c'est faux, la rendre vraie.Enfin, placez le corps de votre
paint()
méthode avecsi (doDraw) {
//Le reste du code ici
}
Et là vous allez!
new Random()
. Un nombre aléatoire générateur (il peut générer plus d'un numéro) devrait être suffisant pour vous. C'est pourquoi la méthode est appeléenextInt
btw, car il ne sera pas de retour à la précédente à nouveau...Normalement, vous devez remplacer paintComponent(), qui finit par être appelé par paint(). Avez-vous des trucs de fantaisie dans paintComponent().
Pas sûr de comprendre le reste de votre question, voir Ernest réponse.