OVH Cloud OVH Cloud

deriveFont, comment ça marche !!

3 réponses
Avatar
cali93
bonjour,

j'ai un petit soucis, j'ai 2 bouton bold et italique, et j'aimerai que
lorsque je cliques sur l'un ou l'autre, mon Jlabel se reactualise, et change
de style.
public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals("bold")) {
if (croixCocherBold.isSelected())
lblTop.setFont(
lblTop.getFont().deriveFont(1));
else
lblTop.setFont(
lblTop.getFont().deriveFont(0));
}
if (ae.getActionCommand().equals("italics")) {
if (croixCocherItalique.isSelected())
lblTop.setFont(
lblTop.getFont().deriveFont(2));
else
lblTop.setFont(
lblTop.getFont().deriveFont(3));
}
}

j'ai tout essayé et je n'arrive po, est ce que je suis obligé de faire un if
par cas ? si quelqu'un pouvait m'aider ça serait tres sympa

Merci

3 réponses

Avatar
vclassine
j'ai tout essayé et je n'arrive po, est ce que je suis obligé de faire un if
par cas ? si quelqu'un pouvait m'aider ça serait tres sympa


lblTop.getFont().deriveFont(1));

à remplacer par

lblTop.setFont(lblTop.getFont().deriveFont(1)));

avec ça, ça marche et pour faire propre tu peux faire ça

lblTop.setFont(lblTop.getFont().deriveFont(Font.XXXX)));

où XXXX peut être BOLD ou ITALIC...

Sinon tu n'as pas du trop regarder la javadoc, elle dit texto:

"Creates a new Font object by replicating the current Font object and
applying a new set of font attributes to it. "

Il n'y a pas d'ambiguité: ça ne modifie pas l'objet Font, ça en crée
une copie modifiée selon l'argument passé...

Les intances de Font sont immuables (== read only), tu noteras qu'il
n'y a pas de méthode setXXXX() dans la classe Font. Ce genre de classe
est courant en java, la plus célèble est la classe String... Il faut
que tu bosses un peu les bases avant de prétendre faire des
applications graphiques...

Avatar
oliv
Vincent wrote:

lblTop.getFont().deriveFont(1));

à remplacer par

lblTop.setFont(lblTop.getFont().deriveFont(1)));



Le texte original de l'OP était
lblTop.setFont(
lblTop.getFont().deriveFont(1));

Moi non plus je n'ai pas trouvé ce qui ne va pas, une fois remplacé le
1 par la constante symbolique appropriée et simplifiée un peu la
logique des if.

--
oliv

Avatar
vclassine
oliv wrote in message news:<403a155d$0$28629$...
Vincent wrote:

lblTop.getFont().deriveFont(1));

à remplacer par

lblTop.setFont(lblTop.getFont().deriveFont(1)));



Le texte original de l'OP était
lblTop.setFont(
lblTop.getFont().deriveFont(1));

Moi non plus je n'ai pas trouvé ce qui ne va pas, une fois remplacé le
1 par la constante symbolique appropriée et simplifiée un peu la
logique des if.


mea culpa