CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Objet Graphics non appelé

Phospholipide
Phospholipide
Niveau 7
29 avril 2012 à 08:33:59

Bonjour.

Je débute en programmation et je développe un shoot'em up en 2D (donc avec des sprites). J'essaie d'utiliser un objet graphics, mais il semble qu'il n'est pas appelé. :doute:

Classe_principale.java
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

public class Classe_principale {

         /**
         * @param args
         */
public static void main(String[] args) {
// TODO Auto-generated method stub

//Instanciation de l'objet Fenetre
Fenetre fenetre = new Fenetre();
Panneau pan = new Panneau();
fenetre.setContentPane(pan);

}

}

J'appelle ici la classe Panneau.java qui contient un objet Graphics.

Fenetre.java
¯¯¯¯¯¯¯¯¯¯¯¯
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Fenetre extends JFrame {
//Classe qui créera une fenê tre
Panneau pan = new Panneau();
public Fenetre(){
this.setTitle("Titre de la fenetre");
this.setSize(700, 600);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLO
SE);
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setBackground(Color.BLACK);

//J'indique à la fenetre que l'objet pan doit agir sur elle
this.setContentPane(pan);

}

private void animation() {
while(true) {
pan.repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

}

Tout fonctionne et la fenêtre a un fond noir.

Panneau.java
¯¯¯¯¯¯¯¯¯¯¯¯¯
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class Panneau extends JPanel {
//Objet qui dessinera sur la fen tre
public void paintComponent(Graphics g){
System.out.println("Test");
g.fillRect(0, 0, 700, 600);
g.drawString("TEST", 10, 20);
g.setColor(Color.red);

}

}

C'est là qu'il y a un problème. J'ai créé un objet panneau dans Fenetre.java et Classe_principale.java, mais TEST ne s'affiche pas sur la fenêtre et test n'apparaît pas dans la console. J'en ai conclu que l'objet n'est pas appelé et je ne comprends pas pourquoi. :doute:

Merci d'avance.

godrik
godrik
Niveau 30
29 avril 2012 à 21:16:48

Est ce que la fonction animation est appelle? par qui?

Faire une boucle infini depuis un thread graphique est la garantie que l'application ca partir en cacahuete.

Aussi, tu n'as pas besoin de rendre l'objet Panneau visible avec un
pan.setVisible(true); dans le constructeur de fenetre?

Phospholipide
Phospholipide
Niveau 7
30 avril 2012 à 17:08:23

Je vais essayer.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment