/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class WriteFont extends JFrame implements ActionListener {
JComboBox fontType, fontSize; //下拉列表
JCheckBox boldBx; //粗体按钮
JCheckBox italicBx; //斜体按钮
JButton colorBtn; //颜色按钮;
String[] fontNames; //字体名称;
String[] fontSizes; //字体尺寸;
JLabel label; //输入提示标签;
JTextField inputText; //文字输入框;
JTextArea txtArea; //文字显示区;
JPanel fontPanel; //字体设置;
JPanel showPanel; //显示效果区
Font f;
Font font;
int boldStyle, italicStyle, underlineStyle;
int fontSizeStyle;
String fontNameStyle;
Color colorStyle = Color.black; //设置字体的默认颜色为黑色;
public WriteFont() {
super("多媒体实验-仿Word字体设置");
//设置默认字体
boldStyle = 0;
italicStyle = 0;
underlineStyle = 0;
fontSizeStyle = 10;
fontNameStyle = "宋体";
font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle);//初始化font对象
fontPanel = new JPanel();
fontPanel.setLayout(new FlowLayout());
//设置字体名字
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
fontNames = ge.getAvailableFontFamilyNames(); //获得系统中所有字体的名字;
fontType = new JComboBox(fontNames);
fontType.setEditable(false);// 设置选择框只能选择不能输入
fontType.setMaximumRowCount(10);//设置下拉框显示条数
fontSizes = new String[63];
for (int i = 0; i < 63; i++) {
fontSizes[i] = Integer.toString((i + 10));
}
fontSize = new JComboBox(fontSizes);
fontSize.setEditable(false);
fontSize.setMaximumRowCount(10);
fontType.addItemListener(new ItemListener() { //添加指定的项侦听器,以接收来自此复选框的项事件,ItemListener用于捕获带有item的组件产生的事件
public void itemStateChanged(ItemEvent e) {
//实现监听字体名字改变的事件
int num = new Integer(fontSize.getSelectedItem().toString()).intValue();//getSelectedItem获取此滚动列表中选中的项
if (italicBx.isSelected() && boldBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.ITALIC + Font.BOLD, num);
txtArea.setFont(f);
} else if (boldBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.BOLD, num);
txtArea.setFont(f);
} else if (italicBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.ITALIC, num);
txtArea.setFont(f);
} else {
f = new Font(fontType.getSelectedItem().toString(), Font.PLAIN, num);
txtArea.setFont(f);
}
}
});
//设置字体大小
fontSize.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
//实现监听字体大小改变的方法
int num = new Integer(fontSize.getSelectedItem().toString()).intValue();
if (italicBx.isSelected() && boldBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.ITALIC + Font.BOLD, num);
txtArea.setFont(f);
} else if (boldBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.BOLD, num);
txtArea.setFont(f);
} else if (italicBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.ITALIC, num);
txtArea.setFont(f);
} else {
f = new Font(fontType.getSelectedItem().toString(), Font.PLAIN, num);
txtArea.setFont(f);
}
}
});
//设置粗体选择按钮;
boldBx = new JCheckBox("粗体");
boldBx.addItemListener(new ItemListener() {
//实现监听选择粗体状态改变的方法
public void itemStateChanged(ItemEvent e) {
int num = new Integer(fontSize.getSelectedItem().toString()).intValue();
if (italicBx.isSelected() && boldBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.ITALIC + Font.BOLD, num);
txtArea.setFont(f);
} else if (boldBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.BOLD, num);
txtArea.setFont(f);
} else if (italicBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.ITALIC, num);
txtArea.setFont(f);
} else {
f = new Font(fontType.getSelectedItem().toString(), Font.PLAIN, num);
txtArea.setFont(f);
}
}
});
//设置斜体选择按钮;
italicBx = new JCheckBox("斜体");
italicBx.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
//实现监听选择斜体状态改变的方法
int num = new Integer(fontSize.getSelectedItem().toString()).intValue();
if (italicBx.isSelected() && boldBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.ITALIC + Font.BOLD, num);
txtArea.setFont(f);
} else if (italicBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.ITALIC, num);
txtArea.setFont(f);
} else if (boldBx.isSelected()) {
f = new Font(fontType.getSelectedItem().toString(), Font.BOLD, num);
txtArea.setFont(f);
} else {
f = new Font(fontType.getSelectedItem().toString(), Font.PLAIN, num);
txtArea.setFont(f);
}
}
});
//设置颜色选择;
colorBtn = new JButton("颜色");
colorBtn.addActionListener(this);
//设置字体面板;
fontPanel.add(fontType);
fontPanel.add(fontSize);
fontPanel.add(boldBx);
fontPanel.add(italicBx);
fontPanel.add(colorBtn);
//设置输入提示标签
label = new JLabel("输入");
//设置文本输入框;
inputText = new JTextField(30);
inputText.addActionListener(this);
//设置文本显示区;
txtArea = new JTextArea(10, 80); //20行80列;
txtArea.setFont(font);
//设置文本面板;
showPanel = new JPanel();
showPanel.add(label);
showPanel.add(inputText);
showPanel.setLayout(new FlowLayout());
showPanel.add(new JScrollPane(txtArea));
//设置容器;
Container container = getContentPane();
container.setLayout(new BorderLayout());
container.add(fontPanel, BorderLayout.NORTH);
container.add(showPanel, BorderLayout.CENTER);
setSize(500, 300);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == colorBtn) { //改变颜色
colorStyle = JColorChooser.showDialog(this, "选择字体颜色", colorStyle);
colorBtn.setForeground(colorStyle);
txtArea.setForeground(colorStyle);
} else if (e.getSource() == inputText) { //将输入文字在文字显示区表示;
txtArea.setText(inputText.getText());
}
}
public static void main(String args[]) {
WriteFont artFont = new WriteFont();
artFont.
keyu1711
- 粉丝: 21
- 资源: 89
最新资源
- CFA知识点梳理系列:CFA Level II, Reading 4 Big Data Projects
- 专业问题 · 语雀.mhtml
- 基于Vue+TP6的B2B2C多场景电商商城设计源码
- 基于小程序的研知识题库小程序源代码(java+小程序+mysql).zip
- 基于小程序的微信小程序的点餐系统源代码(java+小程序+mysql).zip
- 基于小程序的宿舍管理小程序源代码(java+小程序+mysql).zip
- 基于小程序的小区服务系统源代码(python+小程序+mysql).zip
- QT项目之中国象棋人工智能
- 基于小程序的疫情核酸预约小程序源代码(java+小程序+mysql).zip
- 基于小程序的生活小助手源代码(java+小程序+mysql).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈