یک فرم که توش فونت و سایزشو انتخاب میکنیم ( ورودی سازنده ی کلاس یک JtextArea است و خروجی بعد کلیلک روی ok تغییر فونت JtextArea است )
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
import javax.swing.JComboBox;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.SwingConstants;
public class FontChooser extends JDialog
{
private JComboBox comboBox;
private final JPanel contentPanel = new JPanel();
private JLabel lblNewLabel;
private JPanel buttonPane;
public FontChooser(JTextArea a)
{
JComboBox comboBox_1 = new JComboBox();
int[] s = {8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72};
for(int i =0;i<s.length;i++)
{
comboBox_1.addItem(s[i]);
}
JLabel lblPreview = new JLabel("Preview");
lblPreview.setHorizontalAlignment(SwingConstants.C ENTER);
comboBox_1.setSelectedItem(a.getFont().getSize());
setBounds(100, 100, 485, 287);
contentPanel.setLayout(new FlowLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
{
buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
{
JButton okButton = new JButton("OK");
okButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
a.setFont(new Font(comboBox.getSelectedItem().toString(),Font.IT ALIC,Integer.parseInt(comboBox_1.getSelectedItem() .toString())));
dispose();
}
});
JButton btnNewButton = new JButton("Preview");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
////////////////////////
lblPreview.setFont(new Font(comboBox.getSelectedItem().toString(),Font.PL AIN,Integer.parseInt(comboBox_1.getSelectedItem(). toString())));
}
});
buttonPane.add(btnNewButton);
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
{
lblNewLabel = new JLabel("Font : ");
}
JLabel lblSize = new JLabel("Size :");
{
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.TRAILING )
.addGroup(groupLayout.createSequentialGroup()
.addGap(23)
.addGroup(groupLayout.createParallelGroup(Alignmen t.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addComponent(contentPanel, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED, 161, Short.MAX_VALUE)
.addComponent(comboBox_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(82))
.addGroup(groupLayout.createSequentialGroup()
.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 237, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblSize)
.addContainerGap(177, Short.MAX_VALUE))))
.addGroup(groupLayout.createSequentialGroup()
.addContainerGap(29, Short.MAX_VALUE)
.addComponent(buttonPane, GroupLayout.PREFERRED_SIZE, 413, GroupLayout.PREFERRED_SIZE)
.addGap(27))
.addGroup(groupLayout.createSequentialGroup()
.addContainerGap(156, Short.MAX_VALUE)
.addComponent(lblPreview, GroupLayout.PREFERRED_SIZE, 173, GroupLayout.PREFERRED_SIZE)
.addGap(140))
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(Alignmen t.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addContainerGap()
.addGroup(groupLayout.createParallelGroup(Alignmen t.BASELINE)
.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
.addComponent(lblSize))
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(contentPanel, GroupLayout.PREFERRED_SIZE, 61, GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createSequentialGroup()
.addGap(54)
.addComponent(comboBox_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblPreview, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)
.addGap(35)
.addComponent(buttonPane, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(23))
);
comboBox = new JComboBox();
contentPanel.add(comboBox);
getContentPane().setLayout(groupLayout);
String[] fontList = GraphicsEnvironment.getLocalGraphicsEnvironment()
.getAvailableFontFamilyNames();
for(int i = 0 ;i<fontList.length;i++)
{
comboBox.addItem(fontList[i]);
}
comboBox.setSelectedItem(a.getFont().getName());
}
}
}