<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 聽風 閱讀(211) 評論(0)  編輯  收藏 所屬分類: JAVA

    主站蜘蛛池模板: 亚洲第一香蕉视频| 免费在线观看a级毛片| 91人成网站色www免费下载| 久久亚洲国产成人精品无码区| 又黄又爽又成人免费视频| AV大片在线无码永久免费| 五月天婷婷精品免费视频| 黄色免费在线网址| 国产99久久久国产精免费 | 亚洲一级片免费看| 久久精品亚洲福利| 久久亚洲高清观看| 亚洲国产天堂久久综合网站| 亚洲美女激情视频| 国产亚洲欧洲Aⅴ综合一区 | 亚洲AV无码一区二区二三区入口 | ssswww日本免费网站片| 4hu四虎免费影院www| 成人国产精品免费视频| 亚洲AV色无码乱码在线观看 | 亚洲国产主播精品极品网红| 久久亚洲色一区二区三区| 亚洲精品无码国产| 亚洲av中文无码| 国产亚洲色婷婷久久99精品91| 亚洲精品午夜国产VA久久成人 | 亚洲国产成人VA在线观看| 久久亚洲国产精品一区二区| 亚洲国产精品久久网午夜| 亚洲国产精品无码久久SM| 亚洲永久永久永久永久永久精品| 国内精品久久久久久久亚洲| 久久亚洲伊人中字综合精品| 亚洲人精品午夜射精日韩| 国产亚洲精品不卡在线| 亚洲av中文无码乱人伦在线r▽| 亚洲午夜国产精品无卡| 亚洲gay片在线gv网站| 国产黄在线播放免费观看| 久久综合给合久久国产免费| 久久久精品午夜免费不卡|