package view.frame;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.Serializable;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.border.TitledBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
/**
* <p>Title: OpenSwing</p>
* <p>Description: JFontDialog</p>
* 履历:<BR>
* 2006/01/20 根据网友ranchgirl的建议修改了几个BUG<BR>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author <a href="mailto:sunkingxie@hotmail.com">SunKing</a>
* @version 1.0
*/
public class JFontDialog
extends JDialog
implements ActionListener, ListSelectionListener, Serializable {
private JPanel pCenter = new JPanel();
private JTextField txtName = new JTextField();
private JTextField txtStyle = new JTextField();
private JTextField txtSize = new JTextField();
private JScrollPane spName = new JScrollPane();
private JScrollPane spStyle = new JScrollPane();
private JScrollPane spSize = new JScrollPane();
private JPanel pPreview = new JPanel();
private TitledBorder titledBorder1;
private JLabel lbName = new JLabel();
private JLabel lbStyle = new JLabel();
private JLabel lbSize = new JLabel();
private MainFrame frame;
/**
* 取得所有字体名
*/
String fontNames[] = GraphicsEnvironment.getLocalGraphicsEnvironment().
getAvailableFontFamilyNames();
private JList listName = new JList(fontNames);
String fontStyles[] = {"标准","粗体","斜体","粗斜体"};
private JList listStyle = new JList(fontStyles);
String fontSizes[] = {
"8", "9", "10", "11", "12", "14", "16", "18", "20",
"22", "24", "26", "28", "36", "48", "72"};
private JList listSize = new JList(fontSizes);
private JLabel lbPreview = new JLabel();
private JButton bttOK = new JButton();
private JButton bttCancel = new JButton() {
public Insets getInsets() {
return new Insets(0, 0, 0, 0);
}
};
boolean hasCancel = true;
public static Font showDialog(MainFrame frame,String title, boolean modal,
Font initFont) {
JFontDialog dialog;
dialog = new JFontDialog(frame,title, modal);
if (initFont != null) {
dialog.setFont(initFont);
}
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
dialog.setLocation( (d.width - dialog.getSize().width) / 2,
(d.height - dialog.getSize().height) / 2);
dialog.setVisible(true);
return dialog.getFont();
}
/**
* 取得根窗口
* @param c Component
* @return Window
*/
public JFontDialog(MainFrame frame,String title, boolean modal){
this.frame = frame;
this.setTitle(title);
this.setModalityType(this.DEFAULT_MODALITY_TYPE);
jbInit();
}
private void jbInit() {
this.setSize(480, 310);
titledBorder1 = new TitledBorder("预览");
pCenter.setLayout(null);
txtName.setBackground(Color.white);
txtName.setEditable(false);
txtName.setBounds(new Rectangle(15, 22, 152, 21));
txtStyle.setBackground(Color.white);
txtStyle.setEditable(false);
txtStyle.setBounds(new Rectangle(174, 22, 123, 21));
txtSize.setBackground(Color.white);
txtSize.setEditable(false);
txtSize.setBounds(new Rectangle(304, 22, 63, 21));
spName.setBounds(new Rectangle(15, 47, 152, 220));
spStyle.setBounds(new Rectangle(174, 47, 123, 113));
spSize.setBounds(new Rectangle(304, 47, 63, 113));
pPreview.setBorder(titledBorder1);
pPreview.setBounds(new Rectangle(174, 170, 193, 98));
pPreview.setLayout(null);
lbName.setText("名称");
lbName.setBounds(new Rectangle(15, 4, 151, 17));
lbStyle.setText("样式");
lbStyle.setBounds(new Rectangle(174, 4, 123, 17));
lbSize.setText("大小");
lbSize.setBounds(new Rectangle(304, 4, 62, 17));
lbPreview.setBorder(BorderFactory.createLoweredBevelBorder());
lbPreview.setHorizontalAlignment(SwingConstants.CENTER);
lbPreview.setText("AaBbCc");
lbPreview.setBounds(new Rectangle(10, 23, 171, 61));
bttOK.setBounds(new Rectangle(379, 21, 79, 22));
bttOK.setMnemonic('O');
bttOK.setText("确定");
bttCancel.setBounds(new Rectangle(379, 48, 79, 22));
bttCancel.setMnemonic('C');
bttCancel.setText("取消");
listName.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listStyle.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listSize.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
getContentPane().add(pCenter);
pCenter.add(spName, null);
pCenter.add(lbName, null);
pCenter.add(spStyle, null);
pCenter.add(txtName, null);
pCenter.add(txtStyle, null);
pCenter.add(lbStyle, null);
pCenter.add(txtSize, null);
pCenter.add(lbSize, null);
pCenter.add(spSize, null);
pCenter.add(pPreview, null);
pPreview.add(lbPreview, null);
pCenter.add(bttOK, null);
pCenter.add(bttCancel, null);
spSize.getViewport().add(listSize, null);
spStyle.getViewport().add(listStyle, null);
spName.getViewport().add(listName, null);
bttOK.addActionListener(this);
bttCancel.addActionListener(this);
listName.addListSelectionListener(this);
listSize.addListSelectionListener(this);
listStyle.addListSelectionListener(this);
setFont(lbPreview.getFont());
getRootPane().registerKeyboardAction(this,
KeyStroke.getKeyStroke(KeyEvent.
VK_ESCAPE, 0),
JComponent.WHEN_IN_FOCUSED_WINDOW);
}
public void setFont(Font f) {
if (f == null)
throw new NullPointerException("mag1");
listName.setSelectedValue(f.getFamily(), true);
listStyle.setSelectedIndex(f.getStyle());
listSize.setSelectedValue("" + f.getSize(), true);
super.setFont(f);
}
public Font getFont() {
if (hasCancel){
return null;
}
return lbPreview.getFont();
}
public void valueChanged(ListSelectionEvent e) {
JList obj = (JList)e.getSource();
if (obj == listName) {
txtName.setText(listName.getSelectedValue().toString());
}
else if (obj == listStyle) {
txtStyle.setText(listStyle.getSelectedValue().toString());
}
else if (obj == listSize) {
txtSize.setText(listSize.getSelectedValue().toString());
}
obj.scrollRectToVisible(obj.getCellBounds(
obj.getSelectedIndex(), obj.getSelectedIndex()));
try {
Font f = new Font(txtName.getText(), listStyle.getSelectedIndex(),
Integer.parseInt(txtSize.getText()));
lbPreview.setFont(f);
}
catch (NumberFormatException ex) {
}
}
public void actionPerformed(ActionEvent e) {
Object ob
没有合适的资源?快使用搜索试试~ 我知道了~
JAVA做的写字板 可以实现windows里面的写字板相似的功能
共38个文件
gif:21个
class:7个
java:5个
需积分: 9 22 下载量 115 浏览量
2008-12-23
19:50:30
上传
评论
收藏 39KB RAR 举报
温馨提示
可以实现windows里面的写字板相似的功能
资源推荐
资源详情
资源评论
收起资源包目录
xieziban.rar (38个子文件)
xieziban
icons
left24.gif 267B
right24.gif 269B
checkbox24.gif 1KB
cut24.gif 1KB
center24.gif 275B
preferences24.gif 240B
setpage24.gif 470B
import24.gif 473B
exit24.gif 313B
export24.gif 473B
justify24.gif 280B
open24.gif 462B
new24.gif 778B
close24.gif 287B
Thumbs.db 29KB
copy24.gif 682B
bold24.gif 188B
underline24.gif 193B
italic24.gif 180B
paste24.gif 374B
radiobox24.gif 737B
file.gif 1KB
.project 384B
.settings
org.eclipse.jdt.ui.prefs 115B
org.eclipse.jdt.core.prefs 21KB
src
view
dao
DaoImpl.java 1KB
action
MenuItemAction.java 895B
common
CenterWindow.java 601B
frame
MainFrame.java 4KB
JFontDialog.java 8KB
.classpath 344B
classes
view
dao
DaoImpl.class 2KB
action
MenuItemAction.class 1KB
common
properties
CenterWindow.class 819B
frame
MainFrame$1.class 1KB
MainFrame.class 5KB
JFontDialog.class 8KB
JFontDialog$1.class 610B
共 38 条
- 1
资源评论
leichunlin1314
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 什么是移动应用开发-关于移动应用开发的相关介绍
- 第二组汇报 PPT.pptx
- 什么是大数据开发-相关介绍-关于大数据开发的相关介绍
- 什么是软件测试-相关介绍-关于软件测试的相关介绍
- 前端开发-什么是前端开发-关于前端开发的一些相关介绍
- Sora AI-关于文生视频的使用场景说明
- suno AI文生视频的相关教程和介绍使用
- 什么是后端开发-关于后端开发的一些小介绍分享
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功