Changer police d'un JButton

Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 17 nov. 2013 à 20:15
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 17 nov. 2013 à 23:05
Bonjour, j'aimerai modifier la police du texte dans un bouton, j'ai beau regarder tous les tutos et les forums, je n'y arrive pas. Alors j'ai trois classes, une qui ouvre la fenêtre, l'autre qui définit le Panel, et l'autre qui définit la tâte du bouton.
Alors voilà la classe fenêtre :


import javax.swing.*;
import java.awt.*;
import javax.swing.JButton;


public class Fenetre extends JFrame
{
private BoutonAccueil p = new BoutonAccueil("Démarrer partie");
private BoutonAccueil q = new BoutonAccueil("Comment jouer");
private Accueil f = new Accueil();
private JLabel j = new JLabel();
private GridBagLayout gridBagLayout1 = new GridBagLayout();
public Grille()
{

this.setTitle("MagicMorpion");
this.setSize(835,626);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setContentPane(f);
setLayout(null);

this.add(p);
p.setBounds(343, 175,149,40);
this.add(q);
q.setBounds(343,370,149,40);





this.setVisible(true);
}

}

La classe Fond :


import java.awt.*;
import javax.swing.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Fond extends JPanel
{
public void paintComponent(Graphics g)
{
Font police = new Font("Times Roman", Font.BOLD,30);
g.setFont(police);
try{
Image im = ImageIO.read(new File("C:\\Imagesbluej\\accueil.png"));
g.drawImage(im,0,0,this);
}
catch(IOException e)
{
e.printStackTrace();
}
}
}

Et la classe Bouton :

import java.awt.*;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;

public class BoutonAccueil extends JButton
{
private String name;

private Graphics g;

public BoutonAccueil(String str){
super(str);
this.name = str;
Font fonte = new Font("TimesRoman",Font.BOLD,30);
g.setFont(fonte);
g.drawString("str",0,0);

}

Et il ne se passe rien ! Je sais que ça fait beaucoup de code d'un coup, mais avez-vous trouver le problème ?
Merci d'avance pour vos réponses !
A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 17/11/2013 à 23:15
Tu ne peux pas utiliser "TimesRoman" car cela ne fait pas partie des fontes autorisées. Tu peux afficher les fontes disponibles comme ceci :

System.out.println(Arrays.toString(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()));

Ce qui se rapproche le plus c'est "Times New Roman", exemple :

public static void main(String[] args)

{
Font f = new Font("Times New Roman", Font.BOLD, 30);
UIManager.put("Button.font", f);
new Grille(); // ou new Fenetre(), ton code n'est pas clair à ce sujet
}

La confiance n'exclut pas le contrôle
1