<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免费一级毛片人人爱| 特级做A爰片毛片免费看无码| 综合自拍亚洲综合图不卡区| 成年女人看片免费视频播放器| 日韩在线视频免费| 久久综合亚洲色HEZYO社区| 四虎永久免费地址在线网站 | 在线看片免费人成视频久网下载| 亚洲系列中文字幕| 四虎影永久在线高清免费| 四虎影视成人永久免费观看视频 | 亚洲国产精品丝袜在线观看| 久久伊人免费视频| 456亚洲人成影院在线观| 国产乱子伦精品免费女| 国产精品成人啪精品视频免费 | 黄色毛片免费观看| 亚洲第一极品精品无码久久| 美女视频黄是免费的网址| 日本亚洲中午字幕乱码| 日本免费高清一本视频| 香蕉成人免费看片视频app下载| 亚洲综合无码一区二区痴汉 | 成人午夜性A级毛片免费| WWW国产成人免费观看视频| 久久久久亚洲AV无码永不| 国产青草视频免费观看97| 丁香花在线视频观看免费| 成人亚洲国产va天堂| 日本亚洲国产一区二区三区| 日韩免费精品视频| 一级一级一级毛片免费毛片| 亚洲的天堂av无码| 国产亚洲美女精品久久久| 国产又大又粗又长免费视频| 一级毛片无遮挡免费全部| 亚洲一级毛片免观看| 亚洲一区二区三区香蕉|