Bonjour,
Est-il possible de créer un JPanel sans fond (background = null) ?
Bonjour,
Est-il possible de créer un JPanel sans fond (background = null) ?
ca veut dire quoi sans background, transparent?
si oui
Code : Sélectionner tout - Visualiser dans une fenêtre à part tonPanel.setOpaque(true);
dans ce cas, tu dois redefinir la methode paintComponent(Graphics g) et a l'interieur tu mets
avec couleur une des couleurs de la class Color, si elles ne te conviennent pas, tu peux creer ta propre couleur avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public void paintComponent(Graphics g){ g.setColor(couleur); super.paintComponent(g); }mais je ne peux pas t'aider pour les parametres puisque je suis daltonien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part new Color(.....)![]()
Merci, mais il doit y avoir mésentente. je voulais dire SANS couleur, sans fond, sans rien quoi![]()
En fait j'ai un problème de supperposition. j'ai un TextField dans une frame. je vois le textfield mais son invite (le libellé est masqué).
J'ai vu que la méthode Add() prenait un second paramètre de type int
add(Component*comp, int*index)
quelqu'un peut m'expliquer quelles sont les valeurs que peut prendre l'entier index ?
Je crois que ce que tu veux c'est un panel transparent, non? Sinon je vois pas ce que tu veux dire par "sans couleur". Pour faire un panel transparent, regarde la première réponse de let_me_in...
Merci, mais le setOpaque ne résoud pas mon problème.
C'est pas plutôtEnvoyé par let_me_in
??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tonPanel.setOpaque(false);
Tu peux aussi remplacer ton JPanel par un JComponent. Mais setOpaque(false) reste la meilleure solution.
Que je passe l'argument a true ou false, le résultat est le même !
le textField est bien affiché mais son invite ne l'est pas...
(info, mon bean s'execute dans une appli Oracle Forms)
un petit bout de code pourra clarifier mieux je pense.
Hélas j'en doute car je ne peut livrer la partie Forms !
Oracle Forms est une applet Java qui gère l'affichage des masques de saisie. sur le canvas, on place des items (champs de saisie, boutons,etc...) qui ne sont que des composants swing gérés par l'outil.
Il est possible de placer un composant spécial (bean) qui n'est autre qu'un JavaBean.
J'ai donc créé un bean qui créé un JPanel avec un bord de type Titled pour créer un cadre titré manipulable à l'exécution (ceux en standard dans Forms ne le sont pas). Tout est ok sauf l'invite des champs texte qui disparaissent dès que le JPanel apparait, que je mette le setOpaque à true où à false.
Pour plus de précision, voir le lien suivant, mais je pense que la "couche" Forms introduit une belle inconnue, même pour les pros comme vous.
http://forms.pjc.bean.over-blog.com/article-2040592.html
Je vois dans la doc que JComponent() est une classe abstraite et ne peut etre instancié.Envoyé par Gfx
Comment fais-je alors pour créer un composant de ce type et mettre en oeuvre ses méthodes, par exemple SetBorder() ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 JComponent monPanel = new JComponent() { };
Merci, je ne connaissais pas cette syntaxe.
Toujours est-il que dans mon cas, elle provoque l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part java.lang.VerifyError: (class: oracle/forms/fd/frame$1, method: <init> signature: (Loracle/forms/fd/frame;)V) Expecting to find object/array on stack![]()
Ben la je ne peux plus t'aider car ca compile parfaitement avec mes JDK (1.5 et 1.6). J'ai souvent utilise cette technique et je n'ai jamais eu de probleme. Enfin cette syntaxe est juste celle des classes anonymes comme lorsqu'on cree des listeners (par exemple addMouseListener(new MouseListener() { ... }).
Moi aussi ça compile sans problème sous JDeveloper. c'est à l'exécution dans Forms que ça plante.
Forms en est encore au 1.3, c'est peut-être la raison...
En tout cas merci pour l'aide![]()
Ah c'est peut etre pour ca que tu as des probleme avec le setOpaque(). Bon, solution ultime : cree une classe qui herite de JPanel et surcharge la methode paintComponent() pour qu'elle ne fasse rien.
Ok, je vais essayer.
Toutefois je ne suis pas certain que le problème vienne du setOpaque() dans la mesure ou les composants posés par dessus sont bien visibles. c'est uniquement les invites des boites de texte qui sont masquées.
Même message, même punition !
voici la classe que je déclare
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class myPanel extends JPanel { public myPanel() { setVisible(true); } protected void paintComponent(Graphics g) { } }
Partager