<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
    數據加載中……

    設置字體的一篇文章

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

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

    主站蜘蛛池模板: 成人网站免费看黄A站视频| 亚洲高清视频免费| 精品免费AV一区二区三区| 久久99亚洲网美利坚合众国| 亚洲精品国产啊女成拍色拍| 国产亚洲精彩视频| 午夜高清免费在线观看| 亚洲人成无码久久电影网站| 亚洲最大在线视频| www免费黄色网| 国产成在线观看免费视频| 亚洲成AⅤ人影院在线观看| 亚洲黄网站wwwwww| 国产va免费观看| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 男人的天堂亚洲一区二区三区| 免费一级毛片免费播放| 亚洲精品自产拍在线观看动漫| 亚洲狠狠婷婷综合久久蜜芽| 一级毛片免费视频| 亚洲美日韩Av中文字幕无码久久久妻妇 | 99精品国产免费久久久久久下载| 亚洲另类古典武侠| 在线观看片免费人成视频无码| 亚洲av中文无码乱人伦在线咪咕| 亚洲av日韩av永久无码电影| 亚洲三级高清免费| 亚洲成a人片在线观看无码 | 亚洲国产精品无码专区影院| 222www在线观看免费| 亚洲人成欧美中文字幕| 曰批全过程免费视频播放网站 | a毛片在线免费观看| 亚洲国产精品一区二区第一页免| a毛片成人免费全部播放| 亚洲成a人片77777老司机| 免费无码婬片aaa直播表情| 毛片a级毛片免费播放下载| 亚洲一区中文字幕在线电影网| 无码人妻精品中文字幕免费| 亚洲一区二区三区免费视频|