<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hello world

    隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
    數(shù)據(jù)加載中……

    設(shè)置字體的一篇文章

    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為字號(hào)
    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、文本字體顏色的設(shè)置
    MutableAttributeSet attr = new SimpleAttributeSet();
    ????StyleConstants.setForeground(attr, fg);
    ????setCharacterAttributes(editor, attr, false);
    fg:為color
    8、文本背景顏色的設(shè)置
    MutableAttributeSet attr = new SimpleAttributeSet();
    ????StyleConstants.setBackground(attr, bg);
    ????setCharacterAttributes(editor, attr, false);

    posted on 2009-05-06 14:01 聽風(fēng) 閱讀(211) 評論(0)  編輯  收藏 所屬分類: JAVA

    主站蜘蛛池模板: 久久久久国产成人精品亚洲午夜 | 亚洲另类图片另类电影| 老司机精品免费视频| 亚洲成A∨人片天堂网无码| 亚洲av无码一区二区三区天堂| 一个人看的www在线观看免费 | 亚洲国产日韩综合久久精品| 免费在线观看的网站| 久久精品国产亚洲AV忘忧草18| 国产卡二卡三卡四卡免费网址 | 人妻18毛片a级毛片免费看| 亚洲国产av无码精品| 国产A∨免费精品视频| 激情综合色五月丁香六月亚洲| 福利免费在线观看| 亚洲精品狼友在线播放| 久热免费在线视频| 亚洲人成网站日本片| 全免费一级午夜毛片| 国产精品亚洲综合天堂夜夜| 亚洲成aⅴ人片久青草影院| 国产精品高清免费网站| 婷婷久久久亚洲欧洲日产国码AV| 99精品一区二区免费视频| 亚洲 欧洲 自拍 另类 校园| 宅男666在线永久免费观看| 国产精品亚洲精品日韩动图| 亚洲一级片免费看| 久久免费的精品国产V∧| 亚洲色大网站WWW永久网站| 亚洲男人第一无码aⅴ网站| 欧洲人免费视频网站在线| 亚洲区精品久久一区二区三区| 香蕉高清免费永久在线视频| 九九视频高清视频免费观看| 亚洲AV综合色区无码另类小说| 黄页免费的网站勿入免费直接进入| 欧美亚洲国产SUV| 亚洲免费视频在线观看| 青草草在线视频永久免费| a级毛片在线免费观看|