Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    combobox per i font

    Ciao, io devo dare la possibilità di cambiare font, per ora l'ho sviluppato tramine un menù a tendina, ma ho sentito che java ha già pensato ad una finestrella già provvista di tutto, per modificare stile font e size.
    Sto cercando nelle api qualcosa tipo fontSelectCombobox ma nulla.. continuo la mia ricerca ma se qualcuno vuole darmi una mano è sempre bene accetta...
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: combobox per i font

    Originariamente inviato da Paoletta_r
    Ciao, io devo dare la possibilità di cambiare font, per ora l'ho sviluppato tramine un menù a tendina, ma ho sentito che java ha già pensato ad una finestrella già provvista di tutto, per modificare stile font e size.
    Sto cercando nelle api qualcosa tipo fontSelectCombobox ma nulla.. continuo la mia ricerca ma se qualcuno vuole darmi una mano è sempre bene accetta...
    Grazie
    No, non mi risulta che ci sia una dialog "standard" per scegliere un font. O usi librerie di terze parti o la scrivi/gestisci tu. Cerca un po' su google .... trovi sicuramente qualcosa (cerca: Java font chooser)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Sempre molto gentile...ho trovato un pò di cosine su JFontChooser adesso cerco di studiarmele.
    grazie

  4. #4
    Se avete il mio stesso problema o vi interessa questo argomento, vi propongo questo link:

    [URL=http://java.sun.com/docs/books/tutorial/2d/text/examples/FontSelector.java[/URL]
    contiene esattamente il codice che fa al caso mio...

    Ciao a tutti.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A suo tempo mi ero fatto un componente apposito, un po' in stile Font Chooser di Word. Penso che in giro ce ne siano implementazioni migliori, però lo posto lo stesso, magari qualcuno si passa il tempo a sistemarlo.

    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    /**
     *
     * @author Andrea
     */
    public class JFontChooser extends JComboBox {
        
        private GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        private String[] fontFamilies = ge.getAvailableFontFamilyNames();
        private Font[] myFont;
        
        private class MyComboBoxModel extends DefaultComboBoxModel {        
            public MyComboBoxModel() {            
                super(myFont);
            }
        }
        
        public void actionPerformed(ActionEvent ae) {
            this.setFont((Font)this.getSelectedItem());
            this.validate();
        }
        
        public JFontChooser() {
            this(12, Color.WHITE, Color.BLACK, Color.BLUE, 7);
        }
        
        /** Creates a new instance of JFontChooser */
        public JFontChooser(int textSize, Color bgColor, Color selColor, Color hvrColor, int listSize) {
            super();
            
            final Color selectionColor = selColor;
            final Color backgroundColor = bgColor;
            final Color hoverColor = hvrColor;
            
            myFont = new Font[fontFamilies.length];
            for (int i=0; i < myFont.length; i++) {
                myFont[i] = new Font(fontFamilies[i], Font.PLAIN, textSize);
            }
            this.setModel(new MyComboBoxModel());        
            this.setBackground(backgroundColor);
            this.setMaximumRowCount(listSize);
            this.setRenderer (new ListCellRenderer () {
                public Component getListCellRendererComponent (JList list, Object value, int index, boolean selected, boolean cellHasFocus) {
                    Font font = (Font) value;
                    JLabel label = new JLabel (" "+font.getName());
                    label.setFont(font);
                    label.setForeground (selected ? hoverColor : selectionColor);
                    return label;
                }
            });
            
            this.addActionListener(this);
        }
        
        /*public static void main (String[] args) {
            JFrame jf = new JFrame("test dei font");
            jf.setSize(200,200);
            jf.getContentPane().add(new JFontChooser());
            jf.setVisible(true);
        }*/
        
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.