posts - 38,  comments - 22,  trackbacks - 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);
          ??}
          ?}

          }

          posted on 2007-01-25 16:58 aaabbb 閱讀(2000) 評論(1)  編輯  收藏 所屬分類: Swing
          主站蜘蛛池模板: 阳山县| 汉源县| 乐平市| 江都市| 筠连县| 皮山县| 天祝| 松江区| 东山县| 高邮市| 阿拉善右旗| 交城县| 博乐市| 曲靖市| 巨野县| 黑河市| 辛集市| 申扎县| 兴仁县| 浮梁县| 嘉义市| 扶沟县| 浑源县| 道孚县| 平度市| 久治县| 休宁县| 拉萨市| 长阳| 赣榆县| 诸城市| 都江堰市| 临泉县| 邵阳市| 施甸县| 洛浦县| 大关县| 德江县| 从江县| 马尔康县| 新化县|