//I want to paint a ball in a animation
//I can't seem to find a way to repaint the ball
// Any help or tips on how to use repaint here?
//
// Ball class
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Ball implements Runnable {
protected Point loc;
protected int dx;
protected int dy;
protected Color color;
protected boolean flag;
private Graphics gra;
public Ball(Point loc,int dx,int dy,Graphics st)
{
this.loc=loc;
this.dx=1;
this.dy=1;
color=Color.blue;
this.gra=st;
flag=false;
}
public void paint(Graphics g)
{
g.fillOval((int)this.loc.getX(),(int)this.loc.getY(),20,20);
}
public void move()
{
this.loc.translate(this.dx,this.dy);
}
@Override
public void run() {
while(flag==false)
{
this.paint(gra);
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
move();
}
}
}
//Myframe class
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
public class myframe extends JFrame {
private Ball b;
public myframe()
{
super("My Frame");
setSize(800,600);
}
public void run()
{
b=new Ball(new Point(100,100),10,10,getGraphics());
b.run();
}
}
//Main class
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame
{
/**
* @param args
*/
public static void main(String[] args) {
myframe jwin = new myframe();
jwin.setSize(600, 600);
jwin.setVisible(true);
jwin.run();
}
}
0
A
Répondre
1
Vous devriez essayer d'utiliser repaint()
au lieu de this.paint(gra)
, et le mettre à l'intérieur du fil, vous devez également ajouter le composant à une interface graphique vous
1
Vous devez remplacer la méthode paintComponent() de la classe JComponent. Faites-le peindre et ajoutez ce composant à votre interface graphique.
Questions connexes
- 1. Pourquoi ne pouvez-vous pas utiliser ControlTemplate?
- 2. Repaint() ne s'appelle pas
- 3. Vous ne pouvez pas postuler?
- 4. Vous ne pouvez pas utiliser la commande dans cette sélection?
- 5. Vous ne pouvez pas utiliser le module sur les doubles?
- 6. Vous ne pouvez pas utiliser bcrypt sur l'hôte GoDaddy?
- 7. À quoi ne pouvez-vous PAS utiliser un identifiant?
- 8. Pouvez-vous forcer Linq2SQL à NE PAS utiliser sp_executesql?
- 9. Vous ne pouvez pas utiliser? lorsque rediriger 301 avec .htaccess
- 10. Vous ne pouvez pas utiliser JSON.parse sur "var temp = {'1': ...}"?
- 11. Vous ne pouvez pas utiliser SHA-512 dans Silverlight?
- 12. iOS tableFooterView: Vous ne pouvez pas utiliser UIButton?
- 13. Vous ne pouvez pas utiliser une méthode statique publique?
- 14. JPanel repaint() appel ne fonctionne pas
- 15. Vous ne pouvez pas démarrer Eclipse 3.5.2?
- 16. revalidate()/repaint() ne fonctionne pas dans ActionListener
- 17. Vous ne pouvez pas effacer/réinitialiser NSMutableSet?
- 18. Vous ne pouvez pas remplir la liste?
- 19. Vous ne pouvez pas référencer les objets?
- 20. Vous ne pouvez pas activer activejdbc?
- 21. Vous ne pouvez pas installer yasnippet?
- 22. Vous ne pouvez pas ajouter UIImageView?
- 23. Vous ne pouvez pas désélectionner NumericUpDown?
- 24. Vous ne pouvez pas installer gem do_mysql?
- 25. Vous ne pouvez pas requirejs d'inclure Backbonejs
- 26. Vous ne pouvez pas modifier UltraGrid?
- 27. Pouvez-vous utiliser eDismax sans utiliser Solr?
- 28. repaint() méthode ne pas repeindre mon écran
- 29. update() ou repaint() ne déclenche pas paintEvent()
- 30. Vous ne pouvez pas vous connecter à localhost?