Java tutorial
import java.awt.Container; import java.awt.Font; import java.awt.Frame; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; public class FontDialog extends JFrame implements ActionListener, ListSelectionListener { private JList style = new JList(new String[] { "Serif", "SansSerif", "Monospaced", "Dialog", "DialogInput" }); private JCheckBox bold = new JCheckBox("Bold"); private JCheckBox italic = new JCheckBox("Italic"); private JTextField size = new JTextField("10", 2); private JTextField sample = new JTextField(); public FontDialog() { setTitle("FontDialog"); setSize(600, 200); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = getContentPane(); GridBagLayout gbl = new GridBagLayout(); contentPane.setLayout(gbl); style.setSelectedIndex(0); JLabel label = new JLabel("Size: "); sample.setEditable(false); getContentPane().add(new JScrollPane(style)); getContentPane().add(bold); getContentPane().add(italic); getContentPane().add(label); getContentPane().add(size); getContentPane().add(sample); sample.setText("The quick brown fox"); bold.addActionListener(this); italic.addActionListener(this); style.addListSelectionListener(this); size.addActionListener(this); } public void valueChanged(ListSelectionEvent evt) { updateFont(); } public void actionPerformed(ActionEvent evt) { updateFont(); } public void updateFont() { Font font = new Font((String) style.getSelectedValue(), (bold.isSelected() ? Font.BOLD : 0) + (italic.isSelected() ? Font.ITALIC : 0), Integer.parseInt(size.getText())); sample.setFont(font); repaint(); } public static void main(String[] args) { Frame f = new FontDialog(); f.show(); } }