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);
}
}
}
Swing对JTextPane中字体颜色的设置
时间: 2024-12-31 02:55:51
Swing对JTextPane中字体颜色的设置的相关文章
Android使用selector修改TextView中字体颜色和背景色的方法_Android
本文实例讲述了Android使用selector修改TextView中字体颜色和背景色的方法.分享给大家供大家参考,具体如下: android中的selector大家都很熟悉了,用它可以很方便的实现,控件在不同的动作中,颜色等值的变化.这里我说一下TextView中的一些应用. 我想大家都知道,Button按钮在源码上看是一种特殊的TextView,所以我们很多时候,按钮全是使用的TextView来完成,只要加一个android:clickable="true"就可以了. TextVi
安卓中autoCompleteTextview的下拉栏中字体颜色怎么改?
问题描述 安卓中autoCompleteTextview的下拉栏中字体颜色怎么改? 如上图所示,我输入"化"后,本应该弹出"化材院",但是在下拉栏中,"化材院"这三个字是白色的!我怎么改都无济于事,请问如何解决这个问题? 解决方案 适配器用android.R.layout.simple_list_item_1这个布局或者自己实现一个布局
javascript-marquee字体颜色不能设置
问题描述 marquee字体颜色不能设置 font标签能设置字体大小,但是怎么添加color都改变不了字体颜色.为什么? 解决方案 font已经废弃,使用css替换
javascript-myeclipse编辑JavaScript的字体颜色怎么设置?
问题描述 myeclipse编辑JavaScript的字体颜色怎么设置? 如图..color and font里找到字体的设置但是不能改颜色.. 解决方案 解决方案二: 设置myeclipse编辑窗口颜色----------------------
用ASP.NET(C#版)编写聊天室的过程中,如何通过选择DropDownList中的颜色相来使得文本框中字体颜色变化
问题描述 用ASP.NET(C#版)编写聊天室的过程中,如何通过选择DropDownList中的颜色来使得文本框中字体颜色变化?并且文本框中带有颜色的字体能显示到聊天记录中,聊天记录是另一个aspx页面--新手求大神指导! 解决方案 解决方案二:制定css样式,用js或jquery控制css样式变化解决方案三:说明你的"聊天消息"的表示协议.解决方案四:引用2楼sp1234的回复: 说明你的"聊天消息"的表示协议. 就是不懂怎么说明啊?麻烦大神再说清楚一点!谢谢@@
Word2010中字体颜色的调整技巧
在Word中编辑文档的时候,我们时常会改变字体颜色,来给编辑文档增加一些色彩.美感,这样通篇看起来才不会那么的单调.今天,小编就要向大家介绍两种在Word2010中改变字体颜色的方法. Word2010 方法一 打开Word2010文档页面,我们首先选中需要设置字体颜色的文字. 在"字体"中单击"字体颜色"下三角按钮. 在字体颜色列表中选择"主题颜色"或"标准色"中符合我们要求的颜色即可. 为了设置更加丰富的字体颜色,我们
vb.net中richtextbox控件字体颜色的设置
问题描述 两个本地记事本的内容进行比较,不同的用颜色进行标记While(Notfs.EndOfStream)str=fs.ReadLine()str1=ft.ReadLine()RichTextBox1.Text+=str+Chr(13)+Chr(10)RichTextBox2.Text+=str1+Chr(13)+Chr(10)Ifstr.Length<=str1.LengthThenFori=0Tostr.Length-1Ifstr.Substring(i,1)<>str1.Subs
字体颜色-cocos2d 设置字体的颜色一直变化。。怎么做啊。!!!!新手求指导
问题描述 cocos2d 设置字体的颜色一直变化..怎么做啊.!!!!新手求指导 老师给我我们出了个题目,说是字体的颜色一直变化,要用代码写,还是c++.我们是在x-code环境中.求大神给个代码,解释一下啊!! 解决方案 太简单 update setcolor就行了 解决方案二: 开个定时器 在那跑 颜色随机
iOS如何把所有界面的状态栏的字体颜色都设置为白色
第一步:在info.plist中添加一个字段:view controller -base status bar 设置为NO 第二步:在一个所有界面都继承的父类里添加: if (IOS7_OR_LATER) { // 判断是否是IOS7 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO]; }