想做一个文本编辑器的朋友,来这里是找对了!!
下面的代码告诉我们该怎么在文本编辑器中设置字体大小,颜色,加粗,下划线等许多便捷操作~
花了很长的时间找了这么一个资料,真是累煞我了~~!!
差点都要放弃了,最后终于在网络中搜索到了这么一段十分有用、十分有价值的东东!
感谢网络java程序员精英的大公无私,为我们奉献了这么好的代码~~十分感谢!
若转载,请注明我在下面注明的转载出处,十分感谢~~~~
本文转自:http://www.blogjava.net/Swing/archive/2007/12/26/128965.html
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.text.AttributeSet;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.Document;
import javax.swing.text.EditorKit;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import javax.swing.text.StyledEditorKit;
public class NewJFrame extends javax.swing.JFrame implements ActionListener {
private JPanel jp1;
private JButton color;
private JTextPane jep;
private JScrollPane jsp;
private JButton font;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
NewJFrame inst = new NewJFrame();
inst.setVisible(true);
}
public NewJFrame() {
super();
initGUI();
}
private void initGUI() {
try {
BorderLayout thisLayout = new BorderLayout();
getContentPane().setLayout(thisLayout);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
jp1 = new JPanel();
getContentPane().add(jp1, BorderLayout.NORTH);
{
font = new JButton();
font.addActionListener(this);
jp1.add(font);
font.setText("font");
}
{
color = new JButton();
jp1.add(color);
color.addActionListener(this);
color.setText("color");
}
}
{
jsp = new JScrollPane();
getContentPane().add(jsp, BorderLayout.CENTER);
{
jep = new JTextPane();
jsp.setViewportView(jep);
jep.setDocument(new DefaultStyledDocument());
}
}
pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void setFontSize(JEditorPane editor, int size) {
if (editor != null) {
if ((size > 0) && (size < 512)) {
MutableAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setFontSize(attr, size);
setCharacterAttributes(editor, attr, false);
} else {
UIManager.getLookAndFeel().provideErrorFeedback(editor);
}
}
}
public static void setForeground(JEditorPane editor, Color fg) {
if (editor != null) {
if (fg != null) {
MutableAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setForeground(attr, fg);
setCharacterAttributes(editor, attr, false);
} else {
UIManager.getLookAndFeel().provideErrorFeedback(editor);
}
}
}
public static final void setCharacterAttributes(JEditorPane editor,
AttributeSet attr, boolean replace) {
int p0 = editor.getSelectionStart();
int p1 = editor.getSelectionEnd();
if (p0 != p1) {
StyledDocument doc = getStyledDocument(editor);
doc.setCharacterAttributes(p0, p1 - p0, attr, replace);
}
StyledEditorKit k = getStyledEditorKit(editor);
MutableAttributeSet inputAttributes = k.getInputAttributes();
if (replace) {
inputAttributes.removeAttributes(inputAttributes);
}
inputAttributes.addAttributes(attr);
}
protected static final StyledDocument getStyledDocument(JEditorPane e) {
Document d = e.getDocument();
if (d instanceof StyledDocument) {
return (StyledDocument) d;
}
throw new IllegalArgumentException("document must be StyledDocument");
}
protected static final StyledEditorKit getStyledEditorKit(JEditorPane e) {
EditorKit k = e.getEditorKit();
if (k instanceof StyledEditorKit) {
return (StyledEditorKit) k;
}
throw new IllegalArgumentException("EditorKit must be StyledEditorKit");
}
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if (obj == font) {
JEditorPane editor = jep;
setFontSize(editor, 20);
}
if (obj == color) {
JEditorPane editor = jep;
setForeground(editor, Color.red);
}
}
}
其他操作如下:
1、对字体的操作
MutableAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setFontFamily(attr, family);
setCharacterAttributes(editor, attr, false);
family为字体
2、对字体大小的操作
MutableAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setFontSize(attr, size);
setCharacterAttributes(editor, attr, false);
size为字号
3、是否是粗体的操作
StyledEditorKit kit = getStyledEditorKit(editor);
MutableAttributeSet attr = kit.getInputAttributes();
boolean bold = (StyleConstants.isBold(attr)) ? false : true;
SimpleAttributeSet sas = new SimpleAttributeSet();
StyleConstants.setBold(sas, bold);
setCharacterAttributes(editor, sas, false);
4、是否是斜体的操作
StyledEditorKit kit = getStyledEditorKit(editor);
MutableAttributeSet attr = kit.getInputAttributes();
boolean italic = (StyleConstants.isItalic(attr)) ? false : true;
SimpleAttributeSet sas = new SimpleAttributeSet();
StyleConstants.setItalic(sas, italic);
setCharacterAttributes(editor, sas, false);
5、是否有下划线的操作
StyledEditorKit kit = getStyledEditorKit(editor);
MutableAttributeSet attr = kit.getInputAttributes();
boolean underline = (StyleConstants.isUnderline(attr)) ? false
: true;
SimpleAttributeSet sas = new SimpleAttributeSet();
StyleConstants.setUnderline(sas, underline);
setCharacterAttributes(editor, sas, false);
6、左中右对齐的处理
MutableAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setAlignment(attr, a);
setParagraphAttributes(editor, attr, false);
public static final void setParagraphAttributes(JEditorPane editor,
AttributeSet attr, boolean replace) {
int p0 = editor.getSelectionStart();
int p1 = editor.getSelectionEnd();
StyledDocument doc = getStyledDocument(editor);
doc.setParagraphAttributes(p0, p1 - p0, attr, replace);
}
a:0:左,1:中,2:右
7、文本字体颜色的设置
MutableAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setForeground(attr, fg);
setCharacterAttributes(editor, attr, false);
fg:为color
8、文本背景颜色的设置
MutableAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setBackground(attr, bg);
setCharacterAttributes(editor, attr, false);
分享到:
相关推荐
3. **设置加粗、斜体和下划线**:旁边有三个按钮,分别用于加粗(B)、斜体(I)和下划线(U)。单击它们即可应用相应样式。 **颜色与填充:** 1. **文字颜色**:在“字体”区域,你会看到一个颜色选择器,可以更改文本...
工具条上的按钮通常对应着各种常见的文本样式和格式选项,如加粗、斜体、字号调整、对齐方式、列表、链接等。当用户点击这些按钮时,编辑器会自动将选中的文本转换为相应的UBB代码。 `index.jsp` 文件很可能是这个...
字体效果则包括加粗、斜体、下划线、删除线等,通过“格式”菜单项中的“文字效果”选项可以方便地对这些效果进行设置。字体间距的调整则通过“格式”菜单项中的“字符间隔”选项,允许我们对字符间距进行拉宽或缩小...
4. 字体样式:包括加粗、斜体、下划线等,用于强调或者区分不同的数据或信息。不过,过多的样式可能会分散读者注意力,应适度使用。 5. 字间距和行距:适当的字间距和行距能提高阅读舒适度。过密的文字容易使读者...
本章节我们将深入探讨Word2013中字体格式的相关知识点,包括字形、大小和颜色等设置。 首先,我们来看字形。字形指的是字体的样式,例如常规、粗体、斜体或粗斜体。在Word2013中,"开始"选项卡下的“字体”工具组中...
这里提供了多种功能,包括更改字体、字号、字体颜色、加粗、斜体、下划线等。例如,选择文本后,点击字体下拉框可以选择不同的字体风格,字号可以调整文字的大小,颜色选项则可以为文本赋予各种色彩。 接着,我们...
功能包含:撤销 & 反撤销,格式刷,文本格式,字体设置,字体大小,字体加粗,斜体字,下划线,删除线,文字颜色,单元格颜色单元格边框字体倾斜边框倾斜背景倾斜合并单元格水平对齐自动换行 冻结单元格单元格函数...
的字体大小代码使用[size]标签,后面跟着数字,范围从1到7,表示字体的大小。 6. 改变字体 代码:[font=黑体]字体为黑体[/font] 效果:字体为黑体 Discuz!的改变字体代码使用[font]标签,后面跟着字体的名称,必须...
- **字体和颜色**:改变字体类型、大小、加粗、斜体、下划线,以及文字和背景的颜色。 - **边框和填充**:添加边框,如实线、虚线、点线等,以及选择不同的填充图案或颜色。 - **条件格式**:根据单元格的值应用特定...
`size`属性用于设置字体大小,`face`属性定义字体类型,`color`属性通过十六进制颜色代码设置字体颜色。 - `<small>`:用于显示较小的字体。 - `<big>`:用于显示较大的字体。 - `<b>`:使文本加粗。 - `<i>`...
- 字体设置主要用于改变文本的外观,包括字体类型、大小、颜色、粗细、斜体、下划线等。可以通过“格式”菜单选择“字体”,或者选中文本后右键点击选择“字体”。例如,你可以将一段文字设置为加粗的宋体,字号为...
- 通过以上步骤,逐项调整文本的对齐、大小、颜色、粗细、倾斜、下划线和字体样式,实现对文本的个性化设计。 - 完成编辑后再次保存,确保文件的安全性。 4. **文件拷贝** - 若要将文件移到其他地方,如U盘,...
3. **字体**标签:这里可以调整文本的样式,包括字体类型、大小、颜色、加粗、斜体、下划线等。这些选项使得你可以创建具有视觉吸引力的标题和突出显示的关键数据。 4. **边框**标签:在准备打印或展示表格时,边框...
1. **文本格式设置**:这包括字体的选择、大小的调整、颜色的设定、加粗、斜体、下划线等字符格式的操作。通过这一环节,学生将复习并巩固如何使文本更具视觉吸引力和可读性。 2. **段落格式设置**:涵盖对行距、段...
“字体”设置涵盖了一系列视觉样式,包括字体类型、大小、颜色、加粗、斜体、下划线等。这些都能帮助提升数据的可读性和美观度。例如,可以使用不同的字体颜色来突出关键信息,或者通过加粗字体来标识重要数据。 接...
1. 文字编辑:Java记事本支持常见的文本编辑操作,包括输入文字、修改字体样式(大小、颜色、加粗、斜体、下划线等)、对齐方式(左对齐、居中、右对齐、两端对齐)以及撤销/重做功能,方便用户进行文本创作和编辑。...
字体、字号、背景色、文字颜色、加粗、下划线、斜体、删除线、下标、上标、左对齐,右对齐、居中,剪取、复制、粘贴、删除、撤消、恢复、编号列表、项目列表、添加缩进、减少缩进、清除格式、全选、取消全选、对象...
- **文本的修饰**:例如斜体、下划线等。 - **链接属性详解**:`a`元素的不同状态下的样式。 - **使用链接的顺序**:`:link`、`:visited`、`:hover`、`:active`。 - **链接的继承性**:链接样式如何传递给子元素。 -...
),已经实现新建、打开、保存、另存为、生成PDF、打印预览、撤销、恢复、复制、粘贴、剪切、全选、改变字体、颜色、大小、加粗、斜体、下划线、查找、插入当期时间、左右对齐居中、关于作者,工具箱有插入表格、图片...
1. **文本格式化**:支持加粗、斜体、下划线、字体颜色、字号等基本文本格式操作。 2. **链接管理**:创建、编辑和删除链接,支持HTTP、HTTPS、邮件地址等不同类型的链接。 3. **图像处理**:上传和插入本地或网络上...