JFontChooser java 自定义的字体选择器(二)

2014-11-24 10:55:37 · 作者: · 浏览: 1
//用户选择的字体
private Color selectedcolor; //用户选择的颜色
//[end]
//无参初始化
public JFontChooser(){
this.selectedfont = null;
this.selectedcolor = null;
/* 初始化界面 */
init(null,null);
}
//重载构造,有参的初始化 用于初始化字体界面
public JFontChooser(Font font, Color color){
if (font != null) {
this.selectedfont = font;
this.selectedcolor = color;
this.current_fontName = font.getName();
this.current_fontSize = font.getSize();
this.current_fontStyle = font.getStyle();
this.current_color = color;
/* 初始化界面 */
init(font,color);
}else{
JOptionPane.showMessageDialog(this, "没有被选择的控件", "错误", JOptionPane.ERROR_MESSAGE);
}
}
//可供外部调用的方法
public Font getSelectedfont() {
return selectedfont;
}
public void setSelectedfont(Font selectedfont) {
this.selectedfont = selectedfont;
}
public Color getSelectedcolor() {
return selectedcolor;
}
public void setSelectedcolor(Color selectedcolor) {
this.selectedcolor = selectedcolor;
}
/*初始化界面*/
// private void init(Font txt_font) {
private void init(Font font,Color color) {
//实例化变量
lblFont = new JLabel("字体:");
lblStyle = new JLabel("字型:");
lblSize = new JLabel("大小:");
lblColor = new JLabel("颜色:");
otherColor = new JLabel("< html
>其它颜色");
txtFont = new JTextField("宋体");
txtStyle = new JTextField("常规");
txtSize = new JTextField("9");
//取得当前环境可用字体.
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = ge.getAvailableFontFamilyNames();
lstFont = new JList(fontNames);
//字形.
lstStyle = new JList(new String[]{"常规", "粗休" ,"斜休", "粗斜休"});
//字号.
String[] sizeStr = new String[]{
"8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", "48", "72","初号", "小初",
"一号", "小一", "二号", "小二", "三号", "小三", "四号", "小四", "五号", "小五", "六号", "小六", "七号", "八号"
};
int sizeva l[] = {8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72, 42, 36, 26, 24, 22, 18, 16, 15, 14, 12, 11, 9, 8, 7, 6, 5};
sizeMap = new HashMap();
for (int i = 0; i < sizeStr.length; ++i) {
sizeMap.put(sizeStr[i], sizeva l[i]);
}
lstSize = new JList(sizeStr);
spFont = new JScrollPane(lstFont);
spSize = new JScrollPane(lstSize);
//颜色
String[] colorStr = new String[]{
"黑色", "蓝色", "青色", "深灰", "灰色", "绿色", "浅灰", "洋红", "桔黄", "粉红", "红色", "白色", "黄色"
};
Color[] colorVal = new Color[]{
Color.BLACK, Color.BLUE, Color.CYAN, Color.DARK_GRAY, Color.GRAY, Color.GREEN, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE, Color.PINK, Color.RED, Color.WHITE, Color.YELLOW
};
colorMap = new HashMap();
for (int i = 0; i < colorStr.length; i++) {
colorMap.put(colorStr[i], colorVal[i]);
}
cbColor = new JComboBox(colorStr);
showPan = new JPanel();
ok = new JButton("确定");
cancel = new JButton("取