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 閱讀(1999) 評論(1)  編輯  收藏 所屬分類: Swing
          主站蜘蛛池模板: 博乐市| 博野县| 隆尧县| 台北市| 建平县| 遵化市| 都安| 自贡市| 横山县| 洛浦县| 松江区| 观塘区| 南京市| 峨山| 冷水江市| 临澧县| 盐山县| 南岸区| 扎鲁特旗| 扎囊县| 北宁市| 泸水县| 苍南县| 阜平县| 乐清市| 巴楚县| 阿拉善左旗| 连云港市| 甘孜| 油尖旺区| 东源县| 金阳县| 竹北市| 玉龙| 疏附县| 南丹县| 禹州市| 宁德市| 南汇区| 福贡县| 城口县|