cs_coucounet
Messages postés83Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention16 février 2005
-
10 févr. 2004 à 14:26
cs_coucounet
Messages postés83Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention16 février 2005
-
10 mars 2004 à 13:19
Salut à tous,
Je voudrais imprimer une Frame (que j'ai mis en forme, c tout joli !), et je voudrai que le fond soit blanc pour que ce soit plus joli, et pour éviter de bouffer de l'encre !!!
Le problème c'est que si je met
maFrame.setBackground(Color.white);
ma frame reste en gris, mais c'est juste au chargement de la frame qu'elle est blanche. Une fois la frame chargée elle est en gris !!! => donc mon impression est en gris aussi.
Ma première solution fut de l'imprimer quand elle se charge (lorsqu'elle est blanche) mais dans ce cas j'ai une feuille toute blanche car les composants ne se sont pas encore chargés.
Ma deuxième solution, (plus barbare), fut de créer un très gros jPanel (de la taille de ma frame) et de placer tous mes composants dans le jPanel. L'avantage c'est que là je peux changer la couleur de fond du jPanel en blanc et mon impression est parfaite.
Au final, je suis bien arrivé à faire ce que je voulais (imprimer avec un fond blanc), mais je ne comprend toujours pas pourquoi le "setBackground" ne fonctionne pas avec ma Frame !!!
si quelqu'un a une idée, pour me permettre d'alléger un peu mon code et de comprendre mon problème, n'hésitez pas à me laisser un message.
ioiomatic
Messages postés44Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention 9 mars 20043 10 févr. 2004 à 16:26
salut,
je pense (j'ai pas toutes les infos :big) ) que le background de ta frame est bien blanche. Mais mets donc tous les composants de maFrame en commentaire et lance ta fenêtre.
En fait, tu ne vois pas concrètement le background de maFrame, mais des composants que tu as mis dedans et leur background est par défaut...gris !
Exple concret: exécute le code suivant, puis réexécute le aprs avoir mis la ligne add(pan) en commentaire
J'espère que ton pb venait de là ;)
import java.awt.*;
public class FondBlanc {
public static void main(String[] arg){
FenetreFrame ff = new FenetreFrame("Fond Blanc");
ff.setVisible(true);
}
}
class FenetreFrame extends Frame {
FenetreFrame(String s){
super(s);
setBackground(Color.blue);
setSize(640, 480);
setVisible(true);
Panel pan = new Panel();
pan.setBackground(Color.yellow);
add(pan);
}
}
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 11 févr. 2004 à 00:32
GodConan :clown)
ouai en gro t composant ;o) ne sont pas tranparent :o)
si tu veu porter la couleur du fond de la frma e aux composents il fo que ceux ci soit tranparent.... ;o)
ioiomatic
Messages postés44Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention 9 mars 20043 9 mars 2004 à 13:37
hé non ! ce qui est tout à fait normal. Les composants sont des objets(dans tous les sens du terme) "pleins". S'ils devaient hériter du background du composant parent, il aurait fallu implémenter la transparence aux objets de ce type, ce qui peut alourdir (dans un sens) la classe même parente(héritage et blabla). La transparence (ou opacité) entre bien sûr dans la définition d'un tel objet, mais c'est au dev de la redéfinir et ce n'est pas forcément une mince affaire. D'autre part, par "plein", il faut comprendre que le background d'un composant est lié à ce composant lui-même, c'est à dire qu'il correspond à la surface que le composant en question occupe.
Je pourrais continuer pendant longtemps sur swing, mais cela pourrait devenir hors sujet, donc je m'arrête là. L'essentiel à retenir est simplement que le background d'un composant à la même taille que ce composant(bien qu'il ne faille pas dissocier un composant de son background - on ne compare pas un objet à un élément qui rentre dans sa définition, le background n'est pas un objet mais une propriété d'un composant - )Si tu as d'autres questions n'hésite pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_bibe
Messages postés27Date d'inscriptionmardi 27 août 2002StatutMembreDernière intervention12 mars 2004 10 mars 2004 à 09:10
Je travaille en awt uniquement (pour l'instant).
Si je me souviens bien, si on donne une couleur de fond à un frame, si on rajoute un panel sans lui donner de couleur de fond ( ou avec setBackground(null)), ce panel prend la même couleur de fond.
Je parlais bien de la couleur de fond.
Et j'en profite pour poser une petite question.
(awt)
si je met une image de fond à une frame, comment je peux rendre transparent les composant que j'y rajoute ensuite?
cs_bibe
Messages postés27Date d'inscriptionmardi 27 août 2002StatutMembreDernière intervention12 mars 2004 10 mars 2004 à 09:11
Je travaille en awt uniquement (pour l'instant).
Si je me souviens bien, si on donne une couleur de fond à un frame, si on rajoute un panel sans lui donner de couleur de fond ( ou avec setBackground(null)), ce panel prend la même couleur de fond.
Je parlais bien de la couleur de fond.
Et j'en profite pour poser une petite question.
(awt)
si je met une image de fond à une frame, comment je peux rendre transparent les composant que j'y rajoute ensuite?
cs_coucounet
Messages postés83Date d'inscriptionjeudi 24 juillet 2003StatutMembreDernière intervention16 février 2005 10 mars 2004 à 13:19
Tout d'abord merci à tous de participer à mon post, ça me fait chaud au coeur !! lol
En fait j'ai résolu le problème en rajoutant un JPanel (avec un background de la couleur que je voulais) dans ma Frame.
Comme ça je suis sur que ma fenêtre apparaisse de la couleur souhaitée !
Je sais que ce n'est pas la solution escomptée mais je ne sais pas pkoi avec NetBEans IDE je n'arrive pas à changer la couleur de fond. Dans le code c bon mais pas graphiquement. Alors là au moins je suis sûr que tout est ok !!!!!
Sinon dans le même style de question, est ce que quelqu'un sait comment changer la couleur de fond et de font (lol) d'un JOptionPane?