/**
* @(#)JFontChooser.java
*
*
* @author Saint(旋幻圣殿)
* @version 1.00 2010/2/5
*/
package saint.swing;
import saint.base.ColorFont;
import java.awt.Font;
import java.awt.Color;
import java.awt.GridBagLayout;
import java.awt.GraphicsEnvironment;
import java.awt.Component;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.UIManager;
import javax.swing.JDialog;
import javax.swing.JComponent;
import javax.swing.Box;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JList;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JColorChooser;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.util.Map;
import java.util.HashMap;
/**
* 颜色字体选择器。
*/
public class JFontChooser extends JComponent implements Accessible {
/**
* 操作字体
*/
private ColorFont operate_colorfont = null;
/**
* 成功标志
*/
public static final int APPROVE_OPTION = 0;
/**
* 取消或关闭标志
*/
public static final int CANCEL_OPTION = 1;
/**
* 操作标志
*/
public int current_option = 1;
/**
* 字体大小映射
*/
private Map<String,Integer> sizeMap;
/**
* 颜色选择器
*/
private JColorChooser chooser;
/**
* 字体文本框
*/
private JTextField fonttxt;
/**
* 字形文本框
*/
private JTextField styletxt;
/**
* 大小文本框
*/
private JTextField sizetxt;
/**
* 基础对话框
*/
private JDialog dialog;
/**
* 示例文本
*/
private JLabel lab;
/**
* 使用缺省值进行实例化
*/
public JFontChooser() {
this(null, null);
}
/**
* 使用缺省颜色进行实例化
* @param currentFont 指定字体
*/
public JFontChooser(Font currentFont) {
this(currentFont, null);
}
/**
* 使用缺省字体进行实例化
* @param currentColor 指定颜色
*/
public JFontChooser(Color currentColor) {
this(null, currentColor);
}
/**
* 使用指定字体颜色进行实例化
* @param currentFont 指定字体
* @param currentColor 指定颜色
*/
public JFontChooser(Font currentFont, Color currentColor) {
this.operate_colorfont = new ColorFont(currentFont, currentColor);
this.setLayout(null);
chooser = new JColorChooser(operate_colorfont.getColor());
String[] sizeStr = {"8","9","10","11","12","14","16","18","20","22",
"24","26","28","36","48","72","初号","小初","一号","小一","二号",
"小二","三号","小三","四号","小四","五号","小五","六号","小六",
"七号", "八号"};
int[] sizeVal = {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<String,Integer>();
for(int i=0;i<sizeStr.length; i++) {
sizeMap.put(sizeStr[i],new Integer(sizeVal[i]));
}
JLabel flab = new JLabel("字体:",JLabel.LEFT);
flab.setBounds(12,6,50,22);
this.add(flab);//add
fonttxt = new JTextField(operate_colorfont.getFont().getFamily());
fonttxt.setEditable(false);
fonttxt.setBounds(10,29,180,22);
this.add(fonttxt);//add
JList fontlist = new JList(this.getSystemFontFamily());
fontlist.setDragEnabled(true);
JScrollPane fjsp = new JScrollPane(fontlist,22,31);
fontlist.setSelectedValue(operate_colorfont.getFont().getFamily(), true);
fjsp.setBounds(10,52,180,120);
this.add(fjsp);//add
JLabel tlab = new JLabel("字形:",JLabel.LEFT);
tlab.setBounds(195,6,50,22);
this.add(tlab);//add
styletxt = new JTextField(getStyleString(operate_colorfont.getFont().getStyle()));
styletxt.setEditable(false);
styletxt.setBounds(193,29,110,22);
this.add(styletxt);//add
JList stylelist = new JList(new String[]{"常规","斜体","粗体","粗斜体"});
stylelist.setSelectedValue(getStyleString(operate_colorfont.getFont().getStyle()), false);
stylelist.setDragEnabled(true);
stylelist.setBounds(193,52,110,120);
this.add(stylelist);//add
JLabel slab = new JLabel("大小:",JLabel.LEFT);
slab.setBounds(308,6,50,22);
this.add(slab);//add
sizetxt = new JTextField(getSizeString(operate_colorfont.getFont().getSize()));
sizetxt.setBounds(306,29,80,22);
this.add(sizetxt);//add
JList sizelist = new JList(sizeStr);
sizelist.setDragEnabled(true);
JScrollPane sjsp = new JScrollPane(sizelist);
sizelist.setSelectedValue(getSizeString(operate_colorfont.getFont().getSize()),true);
sjsp.setBounds(306,52,80,120);
this.add(sjsp);//add
JButton cbnt = new JButton("选择颜色");
cbnt.setFocusPainted(false);
cbnt.setBounds(45,200,100,22);
this.add(cbnt);//add
cbnt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(chooser==null)
chooser = new JColorChooser(operate_colorfont.getColor());
Color cl = chooser.showDialog(null,"颜色选择",operate_colorfont.getColor());
if(cl!=null)
operate_colorfont.setColor(cl);
fireStyleChange();
}
});
JPanel jp = new JPanel();
jp.setLayout(new GridBagLayout());
jp.setBorder(javax.swing.BorderFactory.createTitledBorder("示例"));
jp.setBounds(180,180,200,60);
lab = new JLabel("Saint(旋幻圣殿)");
jp.add(lab);
this.add(jp);
JButton OK = new JButton("确定");
OK.setFocusPainted(false);
OK.setBounds(210,246,80,22);
JButton Cancel = new JButton("取消");
Cancel.setFocusPainted(false);
Cancel.setBounds(300,246,80,22);
this.add(OK);
this.add(Cancel);
fireStyleChange();
fontlist.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
JList lst = (JList) e.getSource();
String fontName = (String) lst.getSelectedValue();
fonttxt.setText(fontName);
int style = getStyleInt(styletxt.getText());
int size = sizeMap.get(sizetxt.getText()).intValue();
operate_colorfont.setFont(new Font(fontName,style,size));
fireStyleChange();
}
});
stylelist.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
JList lst = (JList) e.getSource();
String styleName = (String) lst.getSelectedValue();
styletxt.setText(styleName);
int style = getStyleInt(styleName);
operate_colorfont.resetFont(style);
fireStyleChange();
}
});
sizelist.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
JList lst = (JList) e.getSource();
String sizeName = (String) lst.getSelectedValue();
sizetxt.setText(sizeName);
float size = sizeMap.get(sizeName).floatValue();
operate_colorfont.resetFont(size);
fireStyleChange();
}
});
sizetxt.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
fireSizeChange(sizetxt.getText());
}
public void insertUpdate(DocumentEvent e) {
fireSizeChange(sizetxt.getText());
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
竖排文字输出软件.rar (95个子文件)
竖排文字输出软件
mainApp.java 11KB
MANIFEST.MF 100B
src
saint
base
ColorFont.java 2KB
lang
RectProperty.java 1KB
WordHareHouse.java 10KB
Saint.java 500B
swing
GridBagManager.java 3KB
JImagePanel.java 7KB
FrameProperty.java 9KB
JFontChooser.java 13KB
web
WebProperty.java 2KB
WebBorder.java 8KB
JDiv.java 6KB
BorderProperty.java 2KB
JMsgBox.java 4KB
filechooser
SeniorFilter.java 2KB
SimpleFilter.java 941B
BasicFilter.java 4KB
media
BasicPlayer.java 2KB
SimplePlayer.java 5KB
MidiPlayer.java 5KB
io
IniManager.java 3KB
util
RegexCheck.java 2KB
org
mainApp$4.class 885B
mainApp$2.class 1016B
img
cbg.jpg 332B
Thumbs.db 3KB
mainApp$3.class 1016B
mainApp$1.class 1KB
mainApp$7.class 550B
mainApp$6.class 887B
mainApp$5.class 886B
mainApp.class 11KB
doc
package-list 114B
deprecated-list.html 5KB
help-doc.html 8KB
allclasses-frame.html 3KB
overview-summary.html 6KB
index.html 1KB
allclasses-noframe.html 2KB
resources
inherit.gif 57B
saint
base
package-summary.html 5KB
ColorFont.html 14KB
package-frame.html 841B
package-tree.html 5KB
lang
package-summary.html 6KB
Saint.html 9KB
package-frame.html 1KB
package-tree.html 6KB
RectProperty.html 13KB
WordHareHouse.html 10KB
swing
package-summary.html 6KB
package-frame.html 1KB
JFontChooser.AccessibleJFontChooser.html 15KB
package-tree.html 7KB
FrameProperty.html 24KB
GridBagManager.html 16KB
JFontChooser.html 28KB
web
package-summary.html 6KB
WebProperty.html 11KB
package-frame.html 1KB
package-tree.html 7KB
JDiv.html 29KB
WebBorder.html 14KB
BorderProperty.html 14KB
filechooser
package-summary.html 6KB
package-frame.html 1KB
package-tree.html 6KB
SimpleFilter.html 10KB
SeniorFilter.html 11KB
BasicFilter.html 12KB
JMsgBox.html 28KB
JImagePanel.html 41KB
media
package-summary.html 6KB
package-frame.html 1KB
package-tree.html 6KB
MidiPlayer.html 18KB
SimplePlayer.html 18KB
BasicPlayer.html 21KB
io
package-summary.html 6KB
package-frame.html 835B
package-tree.html 5KB
IniManager.html 12KB
util
package-summary.html 6KB
package-frame.html 843B
package-tree.html 5KB
RegexCheck.html 12KB
serialized-form.html 13KB
overview-frame.html 2KB
stylesheet.css 1KB
constant-values.html 12KB
index-all.html 60KB
overview-tree.html 9KB
lib
saint.jar 2.01MB
Run.bat 44B
共 95 条
- 1
资源评论
- zhj5282013-03-13一般不能通用 太复杂
- sally22012013-07-04能把横排文字转换成竖排文字。
- qq_231535072015-09-05有点复杂,注释有点模糊有点少
- lxq789052017-09-01还可以,
- liu_ksw2013-10-13就是的,复杂了,不如硬排版
saintonline
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功