文档章节

java字体设置,包括大小,颜色,加粗,下划线,对齐,斜体的设置

涩女郎
 涩女郎
发布于 2014/11/23 10:38
字数 599
阅读 42
收藏 0

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);

© 著作权归作者所有

涩女郎
粉丝 37
博文 104
码字总数 160210
作品 0
浦东
高级程序员
私信 提问
解析Word转换HTML文档

【项目属性】 技能要求:Java语言,基于Apache POI扩展包实现,如果有其他更好的实现方式,请及时和我们沟通商议 环境要求:Linux 交付周期:3-5天 倾向的接包方:不限地区 需要接包方提供发...

zb1484035363906
2017/09/26
61
4
解析Word转换HTML文档

【项目属性】 技能要求:Java语言,基于Apache POI扩展包实现,如果有其他更好的实现方式,请及时和我们沟通商议 环境要求:Linux 交付周期:3-5天 倾向的接包方:不限地区 需要接包方提供发...

zb1484035363906
2017/09/26
241
3
SpannableString与SpannableStringBuilder

一、概述 1、SpannableString、SpannableStringBuilder与String的关系 首先SpannableString、SpannableStringBuilder基本上与String差不多,也是用来存储字符串,但它们俩的特殊就在于有一个...

菜南瓜
2015/05/18
71
0
Android项目实战(一): SpannableString与SpannableStringBuilder(转)

前言: 曾经在一些APP中的一些类似“帮助”“关于”的界面看过一行文字显示不同的颜色的效果,如下效果: 本软件是一款高、大、上的社区类软件。 一般来说,这应该是由一个TextView来显示的,...

听着music睡
2014/11/13
0
0
Chap 03 HTML文字与段落标记

3.1 标题字 HTML文档中包含有各种级别的标题,各种级别的标题由<h1>到<h6>元素来定义。其中<h1>代表最高级别的标题,依次递减,<h6>最低。 3.1.1 标题字标记h <h1>到<h6>元素中的字母h是英文...

小小牛奋男
2016/02/05
46
0

没有更多内容

加载失败,请刷新页面

加载更多

关于docker0: iptables: No chain/target/match by that name的问题解决

由于Docker 0默认网桥的iptables策略冲突问题,将导致一些web server启动时出现如下错误: docker: Error response from daemon: driver failed programming external connectivity on endpo......

王焱君
今天
87
0
js 下载 canvas 兼容移动端

很蛋疼的问题PC上好好的, 移动端下载不了 , 貌似前端 js 生成的时 base64 格式的 图片数据,移动端无法直接下载, 但是chrome 移动端和pc端都没问题, 国产的几个浏览器全部挂了 之前的下载方式...

阿豪boy
昨天
76
0
微信小程序获取用户OpenId

1.在小程序中获得UserCode: wx.login({success: function (res) {thisApp.setData({userCode: res.code})}}) 2.在小程序中获得UserInfo: wx.getUserInfo({success...

kaition
昨天
54
0
代码生成器技术乱弹二十三,未来之野望,未实现的功能SQLTypes

在原先的Java类型系统的基础上新增SQL类型系统,有校验确保SQL类型系统兼容于Java类型系统。在生成数据库脚本时候使用SQL类型系统。

火箭船
昨天
48
0
Mybatis在插入自增字段时,会对当前对象未赋值的自增字段进行赋值

Mybatis在插入自增字段时,会对当前对象未赋值的自增字段进行赋值,如下即自动完成对id的赋值 OrderItem orderItem = new OrderItem(); System.out.println("==...

Gotcha_
昨天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部