//import the packages for using the classes in them into this class
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*A class for creating JFontDialog
*/
public class Fonts extends JDialog{
/**
*@see Center.java
*this class to make the JDialog in the center
*/
public Center center = new Center(this);
//declaration of the private variables used in the program
private JPanel jp = new JPanel();
private JLabel fjl = new JLabel("Fonts: ");
private JComboBox fjcb = new JComboBox();
/**
*-> GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames() <-
* WE USING THIS METHOD TO GET ALL FONT IN THE SYSTEM (OS)
*/
private String fonts[]=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
private JLabel sjl = new JLabel("Sizes: ");
private JComboBox sjcb = new JComboBox();
private String sizes[] = {"8","10","12","14","16","18","20","24","28","32","48","72"};
private JLabel tjl = new JLabel("Types: ");
private JComboBox tjcb = new JComboBox();
private String types[] = {"Regular", "Bold", "Italic", "Bold Italic"};
private JLabel jjl = new JLabel("Preview:");
private JLabel jl = new JLabel("AaBaCcDdeEfFgGhHjJ");
private JButton okjb = new JButton("OK");
private JButton cajb = new JButton("Cancel");
//for using ok & cancel button @Actions.java
public JButton getOkjb(){
return okjb;
}
public JButton getCajb(){
return cajb;
}
//Constructor of Fonts
public Fonts(){
//for setting the title
setTitle("Font Dialog");
setResizable(false);
/**
*setting the layout (GridLayout: 5 rows & 2 columns)
*add font JLabel, add font JComboBox
*add type JLabel, add type JComboBox
*add size JLabel, add size JComboBox
*add preview JLabel,add test JLabel
*add ok button, add cancel button
*/
jp.setLayout(new GridLayout(5,2,1,1));
jp.add(fjl);
jp.add(fjcb = new JComboBox(fonts));
jp.add(sjl);
jp.add(sjcb = new JComboBox(sizes));
jp.add(tjl);
jp.add(tjcb = new JComboBox(types));
jp.add(jjl);
jl.setBorder(BorderFactory.createEtchedBorder());
jp.add(jl);
jp.add(okjb);
jp.add(cajb);
//add JPanel to the Container
this.getContentPane().add(jp);
/**
*for making JDialog at the center,
*@Center.java
*/
center.fCenter();
//add action listener to Font JComboBox to get the selected item for setting the preview
fjcb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
jl.setFont(new Font(String.valueOf(fjcb.getSelectedItem()),tjcb.getSelectedIndex(),14));
}
});
//add action listener to Type JComboBox to get the selected index for setting the preview
tjcb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
jl.setFont(new Font(String.valueOf(fjcb.getSelectedItem()),tjcb.getSelectedIndex(),14));
}
});
}
/*
*@return font value: (Font,Type,Size)
*/
public Font font(){
Font font = new Font(String.valueOf(fjcb.getSelectedItem()), tjcb.getSelectedIndex(),
Integer.parseInt(String.valueOf(sjcb.getSelectedItem())));
return font;
}
}