Accueil > Forum > > > > changer la transparence d'un JPanel
changer la transparence d'un JPanel
mardi 17 mars 2009 à 13:54:12 |
changer la transparence d'un JPanel

jimmypage64
|
Bonjour,
Je débute sur JAVA. Je voudrais changer la transparence d'un JPanel sur le MouseEntered et MouseExited. Voici le code de ma classe Case (extends JPanel)
... public void mouseEntered(MouseEvent e) { this.setBackground(new Color(255,0,0,80)); this.repaint();} public void mouseExited(MouseEvent e) { this.setBackground(new Color(0,0,255,20)); this.repaint(); } ...
Le problème est qu'au lieu de me changer le fond de ma case, j'ai l'impression qu'a chaque this.repaint que je fais, le setBackground me rajoute une couche en fond de mon composant. Au final a force de rentrer et de sortir de ma Case, elle devient de plus en plus opaque et la couleur alterne entre le rouge et le violet...
Quelqu'un aurait-il une solution pour remedier à ce problème ?
PS: dans l'exemple le résultat attendu serait : - lorsque la souris est hors de la case : fond bleu et transparent - lorsque la souris est dans la case : fond rouge et un peu moins transparent.
Merci d'avance [8)]Zoso
|
|
mardi 17 mars 2009 à 14:59:35 |
Re : changer la transparence d'un JPanel

jojolemariole
|
Salut, J'ai testé rapidement ton exemple et j'ai le même "problème", pour moi ça ressemble à un bug. Tu peux toujours le résoudre comme ça, mais ce n'est pas optimal, je pense : fenetre = new JFrame("Test"); fenetre.setSize(640, 480); fenetre.setLocationRelativeTo(null); fenetre.setLayout(new BorderLayout()); panelFond = new JPanel(new BorderLayout()); panelFond.setBackground(Color.WHITE); panel = new JPanel(); panel.setBackground(BLEU); panel.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { panel.setBackground(ROUGE); //panel.getParent().repaint(); fenetre.repaint(); } @Override public void mouseExited(MouseEvent e) { panel.setBackground(BLEU); //panel.getParent().repaint(); fenetre.repaint(); } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } }); panelFond.add(panel); fenetre.add(panelFond); fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fenetre.setVisible(true);
|
|
mardi 17 mars 2009 à 15:03:33 |
Re : changer la transparence d'un JPanel

jojolemariole
|
Re, (j'ai pas accès à l'éditeur avancé sous Opera du coup le formatage a un peu foiré) fenetre = new JFrame("Test");fenetre.setSize(640, 480);fenetre.setLocationRelativeTo(null);fenetre.setLayout(new BorderLayout());panelFond = new JPanel(new BorderLayout());panelFond.setBackground(Color.WHITE);panel = new JPanel();panel.setBackground(BLEU);panel.addMouseListener(new MouseListener() {@Overridepublicvoid mouseClicked(MouseEvent e) {} @Overridepublicvoid mouseEntered(MouseEvent e) {panel.setBackground(ROUGE);//panel.getParent().repaint();fenetre.repaint();} @Overridepublicvoid mouseExited(MouseEvent e) {panel.setBackground(BLEU);//panel.getParent().repaint(); fenetre.repaint();} @Overridepublicvoid mousePressed(MouseEvent e) {} @Overridepublicvoid mouseReleased(MouseEvent e) {} }); panelFond.add(panel);fenetre.add(panelFond);fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fenetre.setVisible(true);
|
|
mardi 17 mars 2009 à 20:06:28 |
Re : changer la transparence d'un JPanel

benmor
|
Je pense pas que ce soit un bug jojolemariole.
Si tu fait un repaint sur le panel, alors seul celui-ci sera repaint, et donc la transparence se fait par rapport à ce qui existe déjà. Si tu fait un repaint sur la fenêtre, alors il repaint d'abord ce qu'il y a sous le panel et ensuite la transparence se fait donc sur ce qu'il y a sous le panel.
Ca me paraît normal à moi.
"panel.getParent().repaint();" ne fonctionne pas dans ton cas (j'ai testé) sans doute parce que tu utilise un BorderLayout et donc tout l'espace est utilisé donc (optimisation) seul panel est repaint. J'ai testé avec un FlowLayout, ça fonctionne.
|
|
Cette discussion est classée dans : changer, case, fond, jpanel, transparence
Répondre à ce message
Sujets en rapport avec ce message
Transparence du fond d'un composant [ par ElvadriaS ]
Salut,J'ai un JPanel avec une image de fond qui s'affiche tres bien.Par dessus j'ai un autre JPanel avec dedans un JTextArea qui eux aussi s'affiche t
[Swing][Jtable] Couleur de fond [ par terminagroo ]
Bonjour,Voilà en fait je veux créer ma propre JTable, avec une couleur spécifique. Donc pour l'instant je suis arrivée à changer la couleur des entête
image jframe [ par pretyzenta ]
bonsoir, S'il vous plait je suis entrin de préparer une application pour mon stage,mon problème : je veux superposer des composants sur une image (déf
Proble GridLayout [ par sayone ]
Bonjour à tous,Je suis débutant et je dois créer une genre d'interface graphique mais le probleme c'est que je n'arrive pas à positionner les texte et
Transparence [ par andolini ]
Bonjour, j'ai une image faite sur photoshop avec un objet et un fond j'aimerais savoir si c'etait possible de rendre juste le fond de mon image transp
Changer dynamiquement un JPanel par un autre [ par Angenoir ]
Salut.J'aimerais concevoir une application graphique sympa mais je me heurte à quelques problèmes, mes connaissances en Java étant assez limitées Voil
Urgence : Fonds transparents [ par wt ]
Salut tlm,Comment affecte-t-on une couleur transparente à un composants swing, un JPanel par exemple ?Je dispose d'1 couleur en gradient : son intensi
Composants swing et fond transparent !!! [ par wt ]
Salut tlm,Comment affecte-t-on une couleur transparente à un composants swing, un JPanel par exemple ?Je dispose d'1 couleur en gradient : son intensi
SVPPPPPP!!!!!!! G ENCORE BESOIN DE VOUS SVP : JTABLE!!! [ par jafouille94 ]
bonjour la populasse!en fait je blok encore sur un truc.je voudrai changer le fond de chak cellule d'une JTable et mettre une couleur q je veu pour ch
2 JPanel superposées, mais pas de transparence ?! [ par CyberDenix ]
Bonjour, Je créé une JFrame dans la quelle j'insere 2 JPanels contenant chacun une image .png (insertion de A, puis de B), chacun ayant un setOpaque (
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA GED ET SHAREPOINT 2010TECHDAYS PARIS 2010 : LA GED ET SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Etienne Lacour Cette session a commencé par un rappel de la gestion de contenu et surtout une résumé des points ayant été amélioré avec 2010. Accompagné d'un point sur le cycle de vie des documents. Un rappel du fonctionnement de S...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : SHAREPOINT 2010 ET LES RéSEAUX SOCIAUXTECHDAYS PARIS 2010 : SHAREPOINT 2010 ET LES RéSEAUX SOCIAUX par ROMELARD Fabrice
Animé par: Olivier Lepeltier et Karim Manar Cette session commence par la présentation du concept de réseau social, mais surtout de la particularité de du réseau social dans une entreprise. La vision du réseau social est donc une extension du MyS...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : SHAREPOINT 2010 - DESCRIPTION ET NOUVEAUTéSTECHDAYS PARIS 2010 : SHAREPOINT 2010 - DESCRIPTION ET NOUVEAUTéS par ROMELARD Fabrice
Animé par: Karim Manar et Laurent Beaudouin Cette session a pour but de revenir sur ce qu'est SharePoint globalement, mais aussi de voir les évolutions liées avec l'avènement de la version 2010. A partir de la marguerite de...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE LUNDITECHDAYS PARIS 2010 : PLEINIèRE LUNDI par ROMELARD Fabrice
Comme chaque année, c'est le grand rassemblement autour des technologies Microsoft qui se déroule donc à Paris au Palais des Congrès. Cette année est riche pour Microsoft en terme de livraison produit, paris l...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|