Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

Java: Créer une boîte de dialogue de sélection des polices(JFontChooser)

 list, list, set, swing, awt, JPanel, JFrame
{filelink=179}

import java.awt.*;
 
import java.awt.event.*;
 
import javax.swing.*;
 
 
 
/** Boîte de dialogue de sélection des police .
 *
 * Le programme applique la police choisie  
 * dans la boîte de dialogue sur un texte
 */
 
public class ExFont extends JDialog {
 
 
 
    public ExFont(Frame f) {
 
        super(f, "Font Chooser", true);
 
         JPanel pnl = new JPanel(); 
 
 
        JPanel top = new JPanel( );
 
        top.setLayout(new FlowLayout( ));
 
 
 
        policeChoisie = new List(8);
 
        top.add(policeChoisie);
 
 
        // Obtenir la liste des polices disponible
        Toolkit toolkit = Toolkit.getDefaultToolkit( );
        listePolice = GraphicsEnvironment.getLocalGraphicsEnvironment( ).
 
            getAvailableFontFamilyNames( );
 
 
 
        for (int i=0; i<listePolice.length; i++)
        {
        	policeChoisie.add(listePolice[i]);
        }
        policeChoisie.select(0);
        fontSizeChoice = new List(8);
        top.add(fontSizeChoice);
 
 
 
        for (int i=0; i<fontSizes.length; i++)
        {
        fontSizeChoice.add(fontSizes[i]);	
        }
        fontSizeChoice.select(5);
 
 
 
        pnl.add(top, BorderLayout.NORTH);
 
 
 
        JPanel attrs = new JPanel( );
 
        top.add(attrs);
 
        attrs.setLayout(new GridLayout(0,1));
 
        attrs.add(bold  =new Checkbox("Bold", false));
 
        attrs.add(italic=new Checkbox("Italic", false));
 
 
 
        lblApercu = new JLabel("I see your true color", JLabel.CENTER);
        lblApercu.setSize(200, 50);
        pnl.add(BorderLayout.CENTER, lblApercu);
        JPanel bot = new JPanel( );
 
 
 
        Button okButton = new Button("Appliquer");
        bot.add(okButton);
        okButton.addActionListener(new ActionListener( ) {
 
            public void actionPerformed(ActionEvent e) {
 
                previewFont( );
                etat=true;
                dispose( );
                setVisible(false);
 
            }
 
        });
 
 
 
        Button pvButton = new Button("Aperçu");
        bot.add(pvButton);
        pvButton.addActionListener(new ActionListener( ) {
 
            public void actionPerformed(ActionEvent e) {
 
                previewFont( );
 
            }
 
        });
 
 
 
        Button btnAnnuler = new Button("Annuler");
        bot.add(btnAnnuler);
        btnAnnuler.addActionListener(new ActionListener( ) {
 
            public void actionPerformed(ActionEvent e) {
 
                // Réinitaliser les valeurs si l'utilisateur annule l'opération
 
                selectedFont = null;
 
                fontName = null;
 
                fontSize = 0;
 
                isBold = false;
 
                isItalic = false;
 
 
 
                dispose( );
 
                setVisible(false);
 
            }
 
        });
 
 
 
        pnl.add(BorderLayout.SOUTH, bot);
        previewFont( );
        add(pnl);
        pack( );
        setSize(450, 200);
        setLocationRelativeTo(this);
 
    }
 
    protected void previewFont( ) {
 
        fontName = policeChoisie.getSelectedItem( );
 
        String resultSizeName = fontSizeChoice.getSelectedItem( );
 
        int fontSize = Integer.parseInt(resultSizeName);
 
        isBold = bold.getState( );
 
        isItalic = italic.getState( );
 
        int attrs = Font.PLAIN;
 
        if (isBold) attrs = Font.BOLD;
 
        if (isItalic) attrs |= Font.ITALIC;
 
        selectedFont = new Font(fontName, attrs, fontSize);
 
        lblApercu.setFont(selectedFont);
 
        pack( ); 
 
    }
 
 
 
    /** Obtenir le nom de la police sélectionnée. */
 
    public String getSelectedName( ) {
 
        return fontName;
 
    }
 
    /** Obtenir la taille sélectionnée */
 
    public int getSelectedSize( ) {
 
        return fontSize;
 
    }
 
 
 
    public Font getSelectedFont( ) {
 
        return selectedFont;
 
    }
 
 
    public static void main(String[] args) {
 
        final JFrame f = new JFrame("Modificateur de police");
 
        final ExFont fc = new ExFont(f);
 
        final Container pnl = f.getContentPane( );
 
        pnl.setLayout(new GridLayout(0, 1));  
 
 
 
        JButton btnSelect = new JButton("Sélectionner la police...");
 
        pnl.add(btnSelect);
 
 
 
        final JTextArea myText = new JTextArea("Vous pouvez changer la police de ce texten ou tapez"
        	 +" votre propre texte ici",80,50);
 
        pnl.add(myText);
 
 
        btnSelect.addActionListener(new ActionListener( ) {
 
            public void actionPerformed(ActionEvent e) {
 
                fc.setVisible(true);
                if(etat)
                {
                Font myNewFont = fc.getSelectedFont( );
 				myText.setFont(myNewFont); 
                f.pack( );
                fc.dispose( );  
        		 etat=false;               	                          	               	
                }
 
 
            }
 
        });
 
 
 
        f.pack( );
 
        f.setVisible(true);
        f.setSize(250,150);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
 
    }
 
    protected Font selectedFont;
    protected String fontName;
    protected int fontSize;
    protected boolean isBold;
    protected boolean isItalic;
    protected String listePolice[];
    protected List policeChoisie;
    protected List fontSizeChoice;
    static protected boolean etat=false;
    Checkbox bold, italic;
    protected String fontSizes[] = {
 
        "8", "10", "11", "12", "14", "16", "18", "20", "24",
 
        "30", "36", "40", "48", "60", "72"
 
        };
    protected JLabel lblApercu;
 
}

A Voir sur le même Sujet:

  • JFONTCHOOSER
  • java jframe parent of a shell
  • boite de selection dans boite de dialogue java
  • télécharger package jfontchooser java
  • la bibliotheque de jfontchooser java
  • java jfontchooser exemple
  • comment modifier le police d'une boite de dialogue en java
  • exemple jfontchooser java
  • java jfontchooser
  • ouvrir une boite de dialogue de selection java