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-IHM] Le paint()

wensss
wensss
Niveau 10
23 juin 2015 à 10:37:35

Bonjour, j'ai juste un petit problème à vous soumettre.
Je suis en train de coder une fenêtre en IHM, et j'ai plusieurs JPanel dans un gridLayout. J'aimerai que le panel du centre soit une sorte de tableau d'image pour faire une "map" tout en conservant l'idée du gridLayout. Comment puis-je "dessiner" un JPanel avec des drawImages pour pouvoir renvoyer le JPanel central et conserver ainsi cette organisation tout autour? :)
D'avance merci :)

wensss
wensss
Niveau 10
23 juin 2015 à 11:24:36

Bon, j'ai plus ou moins contourné mon problème, mais un nouveau arrive : je me rend compte que je ne comprends rien au paint/repaint!

voici mon code: (les parties utilisés ici)

public class Panneau extends JPanel{
	
	private Image image[] = new Image[Texture.NB_IMAGE];
	private Map carte;
	private int i = 0;
	
	public Panneau(Map carte){
		this.carte = carte;
		image[Texture.VIDE] = Toolkit.getDefaultToolkit().getImage("vide.png");
		image[Texture.MUR] = Toolkit.getDefaultToolkit().getImage("mur.png");
		if(i == 0){
			repaint();
			i=1;
		}
	}

	public void paintComponent(Graphics g){
		for(int i = 0; i < Map.HAUTEUR_CARTE; i++){
			for(int j = 0; j < Map.LARGEUR_CARTE; j++){
				g.drawImage(image[carte.getElementCarte(i, j).getTexture()], j*Map.TAILLE_CASE, i*Map.TAILLE_CASE, Map.TAILLE_CASE, Map.TAILLE_CASE, this);
			}
		}
	}
}
public class IHMJeu extends JFrame{
	
	private Image image[] = new Image[Texture.NB_IMAGE];
	
	public IHMJeu(String title, Map carte){
		super(title);
		image[Texture.VIDE] = Toolkit.getDefaultToolkit().getImage("vide.png");
		image[Texture.MUR] = Toolkit.getDefaultToolkit().getImage("mur.png");
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		Toolkit aTK = Toolkit.getDefaultToolkit();
		Dimension dim = aTK.getScreenSize();
		this.initialise(carte);
		this.setBounds((dim.width-Map.LARGEUR_CARTE*Map.TAILLE_CASE)/2, (dim.height-Map.HAUTEUR_CARTE*Map.TAILLE_CASE)/2, Map.LARGEUR_CARTE*Map.TAILLE_CASE, Map.HAUTEUR_CARTE*Map.TAILLE_CASE);
		this.setVisible(true);
	}
	
	public void initialise(Map carte){
		Container c = this.getContentPane();
		Panneau pCentre = new Panneau(carte);
		c.add(pCentre, BorderLayout.CENTER);
	}
	
}
public class Main {

	public static void main(String[] args) {
		Map test = new Map();
		new IHMJeu("test", test);
	}

}

La fenêtre affiché est complètement vide! Hormis pour ce qui est du titre. Quelqu'un s'aurait-il me dire pourquoi? Il n'y a aucun warning ni message d'erreur. :)

Castelrengx
Castelrengx
Niveau 2
24 juin 2015 à 16:12:07

Est-ce que le chemin vers tes images que tu souhaites affichées est correcte ?


Toolkit.getDefaultToolkit().getImage("vide.png");

Dans ta méthode paintComponent, tu dessines des images sur base de :


carte.getElementCarte(i, j).getTexture()

Est ce que ta méthode getTexture() te retourne bien un objet Image non null ??

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