2012-05-12 3 views
3

Je suis en train de coder un petit programme et c'est en gros ma première fois d'utiliser un JComponent pour dessiner des choses. J'ai mis l'arrière-plan du composant en noir. Mais dès que je dessine un JButton, il est écrasé par le gris par défaut. Je recherche cela depuis une heure maintenant et je n'arrive pas à trouver de réponses.Forcer JButton à ne pas dessiner de fond

+0

Vous pensez à la grisaille de l'arrière-plan du bouton ou de l'arrière-plan de l'ensemble du panneau? Vous devrez peut-être définir explicitement l'arrière-plan du panneau si c'est celui dont vous parlez. 'getContentPane(). setBackground (Couleur.BLACK)'. – Vulcan

Répondre

1

Ce que vous voyez est le cadre auquel vous avez ajouté votre JComponent, donc si vous voulez un cadre de fond noir, vous devez définir la couleur de fond de JFrame.

Quelque chose comme ceci:

JFrame frame = new JFrame(); 
frame.add(new GUI()); 
frame.pack(); 
frame.getContentPane().setBackground(Color.black); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setVisible(true); 
+0

Voici le code de mon cadre: 'JFrame f = new JFrame(); \t \t GUI gui = nouvelle GUI(); \t \t f.add (gui); \t \t f.pack(); \t \t f.setBackground (Couleur.BLACK); \t \t f.setSize (600, 400); \t \t f.setResizable (false); \t \t f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); F12setupisible (vrai); ' – yawkat

+0

Cela a fonctionné:' frame.getContentPane(). SetBackground (Color.black); – yawkat

+0

Seul problème est que je ne peux plus utiliser l'effet aérodynamique parce que je ne peux pas définir une couleur de fond transparente. Cela devrait être ok cependant. – yawkat

1

essayez de régler le bouton pour utiliser opaque la setOpaque (booléen opaque); méthode

Je ne sais pas si je ne me trompe pas, mais je pourrais être

Edit:

Essayez d'utiliser ces méthodes:

button.setBorderPainted(false); 
button.setContentAreaFilled(false); 
button.setFocusPainted(false); 
button.setOpaque(false); 
+0

J'ai déjà essayé et ça n'a pas marché non plus. – yawkat

+0

J'ai mis à jour ma réponse s'il vous plaît vérifier les nouvelles méthodes – DCSoft

+0

[source] (http://pastebin.com/Q9KDGru1) est la classe la plupart des choses est po Dans la méthode principale, je crée un cadre et ajouter une instance de cela à il. – yawkat

Questions connexes