Bug d'affichage avec un JPanel transparent

Résolu
Skymer Messages postés 477 Date d'inscription   Statut Membre Dernière intervention   -  
Skymer Messages postés 477 Date d'inscription   Statut Membre Dernière intervention   -
Salut KX (nan déso, mais y a que toi ici :-p)...
Bon j'ai essayé de me prendre en main, et me suis laissé deux jours pour "essayer" de régler mon problème ... Bien sûr, j'ai pas réussi :'(.
Voilà donc je suis entrain de faire une appli (plutôt un jeu) pour un ami, fan de catch ... Un quizz, donc jusque là tout marche bien ... Mais lors ce que l'on trouve le bon nom de catcheur, je voudrais avoir un JPanel transparent qui se superpose à l'autre JPanel.. Mais le problème c'est que j'ai un malheureux bug d'affichage que voici :



: Pourquoi il y a le "Z" la bas (franchement j'étais mort de rire, tellement je ne COMPRENAIS pas ce qu'il foutait là) le code :
public void mouseReleased(MouseEvent e) {
	temp.setBorderPainted(false);
		if (word.getText().equals(answer)) {
		butPan.revalidate();
		butPan.repaint();
		game.revalidate();
		game.repaint();
		WinPanel = new WinPanel();
//		revalidate();
//		repaint();
		winPanel.setPreferredSize(getSize());
		setContentPane(winPanel);
		isKFMEnabled = true;
//		iniInfosBrowser();
	}
}

Sachant que quand j'enlève :
temp.setModel(new FixedStateButtonModel());

(qui me permet de ne pas avoir un effet bleu transparent, quand on passe au dessus des boutons) la bordure rouge disparaît :'( (ps cette bordure, est une bordure qui s'active lors du clique)

NB : les boutons-lettres sont dans l'ordre, mais j'y travaille (même si j'ai déjà un bug, pour fouiller dans l'arraylist) + je sais, rien n'est fait, je viens de finir le prototype :)

PS : pour javafx, je pense que je vais faire sans le FXMLLoader, où je demanderai ailleurs.
Et mon chat à bien bossé pour les noms de classes :)

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Du coup ta question c'est quoi ?

Quant à ton Z qui se promène ça ressemble à un problème de repaint.

Mais sans le code pour tester ça va être dur de trouver le problème.

Remarque : normalement tu ne devrais quasiment jamais avoir besoin de faire ce genre de code :

butPan.revalidate();
butPan.repaint();
game.revalidate();
game.repaint();

...et encore moins dans un Listener qui bloque l'affichage de l'EDT donc faire des actions dessus c'est pas très propre.
0
Skymer Messages postés 477 Date d'inscription   Statut Membre Dernière intervention   75
 
Yep, je sais, mais j'ai fait ça dans un moment désespéré, mais je viens d'y réfléchir, en voulant faire une capture d'écran pour montrer à mon ami, j'ai voulu mettre trois fenêtre à des stades différents du "jeu" .. Et elle ne rentrer pas toute ... Et donc celle de l'écran transparent, débordé, et en voulant la repositionner je me suis aperçu que le côté qui avait débordé était devenu gris ... Donc c'est un problème d'affichage, est-ce qu'un "screenshot" de la frame, transformé en image, puis en appliquant le "filtre" de transparence suffirait ?
Bon je te laisse 1 journée pour me répondre ^^
Ps : si tu as le temps tu me dis comment on fait ? :) (sans me donner tout le code, y a aucun challenge sinon)
0
Skymer Messages postés 477 Date d'inscription   Statut Membre Dernière intervention   75 > Skymer Messages postés 477 Date d'inscription   Statut Membre Dernière intervention  
 
Edit : Enfaite, je vais faire une méthode dans le panel "Game"pour activer la transparence
0