IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Rectangle qui disparait d'une fenêtre


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Formation
    Inscrit en
    Septembre 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation

    Informations forums :
    Inscription : Septembre 2023
    Messages : 9
    Par défaut Rectangle qui disparait d'une fenêtre
    Bonjour,
    j'ai créé un robot qui se déplace sur un axe x,y avec un angle.J'ai ensuite créé une interface pour afficher ses mouvement en chiffres. Et dernièrement, j'ai ajouté une fenêtre ou un carré(classe box) qui hérite de la classe rectangle et doit pouvoir bouger en appuyant sur les boutons de mon interface de base.
    Cela fonctionnait (bien qu'encore quelques déplacements étaient bizarres). Et d'un coup, sans savoir pourquoi le carré l'appuie sur la touche déplacement, disprait. Je suppose que soit:le repaint est mauvais,soit il se déplace tellement loin d'un coup qu'il sort de la fenêtre.
    Je vous link le code, et les images des fenêtres.

    L'image des fenêtres:Nom : Robot_2_Fenetres.jpg
Affichages : 126
Taille : 64,5 Ko
    Dans mon Interface, dans le constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setTitle("Contrôle du robot");
    		Robot robot1 = new Robot(new Point(0,0),0,0,false);
    		Deplacement move = new Deplacement();
    Ma classe déplacement qui affiche le carré vert:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public class Deplacement extends JFrame{
     
    	Image image;
    	Graphics graphics;
    	Box robot;
     
    	public Deplacement()
    	{
    		robot = new Box(200,200,30,30,Color.green,0);
    		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    		this.setSize(500, 500);
    		this.setVisible(true);
    		this.setBackground(Color.cyan);
    	}
     
    	public void paint(Graphics g)
    	{
    		image = createImage(this.getWidth(),this.getHeight());
    		graphics = image.getGraphics();
    		g.drawImage(image,0,0,this);
     
    		robot.draw(g);
     
    		}
    	}
    Ma méthode de déplacement du robot dans la classe Robot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public boolean marcher(int _sens,Deplacement _move)
    	{
    		double posX = this.pos.getX();
    		double posY = this.pos.getY();
    		double moveCos = Math.cos(this.angle*Math.PI/180);
    		double moveSin = Math.sin(this.angle*Math.PI/180);
    		if(this.estOn)
    		{
    			if (_sens>0)
    			{
    				this.pos.setX((int) (Math.round((posX + this.vitesse*moveCos)*100.00)/100.00));
    				this.pos.setY((int) (Math.round((posY + this.vitesse*moveSin)*100.00)/100.00));
    				_move.robot.x =  this.pos.setX((int) (Math.round((posX + this.vitesse*moveCos)*100.00)/100.00));
    				_move.robot.y =  this.pos.setY((int) (Math.round((posX + this.vitesse*moveSin)*100.00)/100.00));
    				_move.repaint();
    				return true;
    			}
    			else if (_sens<0)
    			{
    				this.pos.setX((int) (posX- Math.round(this.vitesse*moveCos*100.00)/100.00));
    				this.pos.setY((int) (posX- Math.round(this.vitesse*moveSin*100.00)/100.00));
    				_move.robot.x = this.pos.setX((int) (Math.round((posX - this.vitesse*moveCos)*100.00)/100.00));
    				_move.robot.y = this.pos.setX((int) (Math.round((posX - this.vitesse*moveSin)*100.00)/100.00));
    				_move.repaint();
    				return true;
    			}
    		}
    		else
    		{
    			return false;
    		}
    		return true;
    	}
    A la suite de la réparation voulue, c'est à dire que le carré ne disparaissent plus. Je pense afficher les coordonnées de la box dans la fenêtre dans mes zones de texte et pas des valeurs partants du point 0,0 d'un axe x,y.
    A vous ...
    PS: je viens de penser que peut être que le problème vienne des cast de double en int dans la méthode marcher du robot.

  2. #2
    Membre averti
    Homme Profil pro
    Formation
    Inscrit en
    Septembre 2023
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formation

    Informations forums :
    Inscription : Septembre 2023
    Messages : 9
    Par défaut
    Bonjour,
    je n'ai plus le problème, j'ai changé tellement de chose et je ne me souviens plus d'ou venait le problème.
    Cela dit, j'apprends à programmer et je me rends compte qu'avec les bonnes méthodes(que j'essaie d'assimiler), le problèmes de débutants n'apparaissent plus.
    Enfin maintenant, même si j'ai reussi à faire bouger mon carré vert, en changeant mon code meme l'arrière plan de la fenêtre ne s'afifiche pas de la couleur CYAN..., et je dois passr avec la souris sur mes boutons et fields pour qu'ils apparaissent ....
    Je me demande si swing est la bonne solution, car un formateur m'a dit qu'il y avait de nos jours des outils bien plus performants.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CSS] Menu qui disparait derriere un champ
    Par Pepito dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/09/2005, 10h03
  2. Texte qui disparait sous internet explorer.
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/08/2005, 02h55
  3. Tooltip qui disparait et mis en forme
    Par xtest dans le forum MFC
    Réponses: 17
    Dernier message: 17/04/2005, 22h52
  4. [WebForms][Javascript] Une DropDownList qui disparait....
    Par prem's dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 02/03/2005, 10h50
  5. LABEL QUI DISPARAIT SUR UN PICTUREBOX !
    Par Sophie42 dans le forum MFC
    Réponses: 2
    Dernier message: 13/01/2004, 12h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo