Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
29 oct. 2006 à 11:31
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
30 oct. 2006 à 14:19
Salut:
Je développe actuellement une petite application qui utilise une sorte de grille pour afficher des lettres et des chiffres.
Pour assurer la persistance du dessin, (parceque je travaille hors la méthode paint de ma fenêtre) j'ai utilisé une grille de JButton vu :
1- Aspect 3D des JButtons.
2- persistance du dessin.
Mon problème est de rendre ces JButtons non opérables. Si je vais utiliser setEnabled (false) je vais perdre les couleurs de mes grilles qui deviennent gris.
Je veux bien que ces JButtons:
1- gardent leurs couleurs. 2- Si on clique dessus ils ne s'enfoncent pas. 3- gardent leurs aspects 3D.
Est ce qu'il y a un moyen ou une méthode réalisant ça?
(
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 29 oct. 2006 à 16:14
Tout dépend de la bordure que tu lui applique pour le style 3D, mais oui, tu peux avoir un style 3D qui ne s'enfonce pas. Et puis en plus, tu peux lui appliquer une image pour faire ton propre style 3D si ca te chante...
clearTextShiftOffset();
if (model.isArmed() && model.isPressed()) {
paintButtonPressed(g, b);
} else if(!model.isArmed() && !model.isPressed()){
//le bouton n'est pas pressé et n'a pas la souris dessus
}else if(!model.isArmed() && model.isPressed()){
paintButtonPressedNotArmed(g, b);
}
// Paint the Icon
if (b.getIcon() != null)
paintIcon(g, c, iconRect);
//paint the text
if (text != null && !text.equals("")) {
View v = (View) c.getClientProperty(BasicHTML.propertyKey);
if (v != null)
v.paint(g, textRect);
else
paintText(g, b, textRect, text);
}
if (b.isFocusPainted() && b.hasFocus()) {
// paint UI specific focus
paintFocus(g, b, viewRect, textRect, iconRect);
}
}
protected void paintButtonPressedNotArmed(Graphics g, AbstractButton b) {
//le bouton est pressé mais la souris n'est pas dessus
}
protected void paintButtonPressed(Graphics g, AbstractButton b) {
//le bouton est pressé a toi de voir comment tu veux le dessiner
}
// layout the text and icon
return SwingUtilities.layoutCompoundLabel(b, fm, b.getText(), b
.getIcon(), b.getVerticalAlignment(), b
.getHorizontalAlignment(), b.getVerticalTextPosition(), b
.getHorizontalTextPosition(), viewRect, iconRect, textRect, b
.getText() == null ? 0 : b.getIconTextGap());
}
}
bref il te faut bidouiller à ta sauce mais tu devrais pouvoir t'en sortir avec.... point de vu utilisation c'est simple
JButton button = new JButton();
button.setUI(new ButtonUI());
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 29 oct. 2006 à 15:48
Salut:
Est ce que les JPanel répondent à ce que je veux :
1. Forme 3D
2. si on clique dessus il ne s'enfonce pas.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 30 oct. 2006 à 12:43
Salut:
Juste une petite question.
Comment centré le texte dans un JLabel?
J'ai utilisé des espaces mais cette solution n'est pas générique.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 30 oct. 2006 à 14:12
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 30 oct. 2006 à 14:19