保留字体大小与颜色

JTextArea是纯文本组件,可以使用JTextPane,通过操作Document文档来控制JTextPane显示的内容,下面的代码在一个JTextPane中显示了一个图标,三行文字,每行用不同的颜色和大小显示:  
   
   

  import   javax.swing.*;  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.text.*;  
  import   java.io.*;  
   
  public   class   Test   {  
      JFrame   frame;  
      JTextPane   textPane;  
      File   file;  
      Icon   image;  
   
      public   Test(){  
          frame   =   new   JFrame("JTextPane");  
          textPane   =   new   JTextPane();  
          file   =   new   File("./classes/test/icon.gif");  
          image   =   new   ImageIcon(file.getAbsoluteFile().toString());  
      }  
   
      public   void   insert(String   str,   AttributeSet   attrSet)   {  
          Document   doc   =   textPane.getDocument();  
          str   ="\n"   +   str   ;  
          try   {  
              doc.insertString(doc.getLength(),   str,   attrSet);  
          }  
          catch   (BadLocationException   e)   {  
              System.out.println("BadLocationException:   "   +   e);  
          }  
      }  
   
      public   void   setDocs(String   str,Color   col,boolean   bold,int   fontSize)   {  
          SimpleAttributeSet   attrSet   =   new   SimpleAttributeSet();  
          StyleConstants.setForeground(attrSet,   col);  
          //颜色  
          if(bold==true){  
              StyleConstants.setBold(attrSet,   true);  
          }//字体类型  
          StyleConstants.setFontSize(attrSet,   fontSize);  
          //字体大小  
          insert(str,   attrSet);  
      }  
   
      public   void   gui()   {  
          textPane.insertIcon(image);  
          setDocs("第一行的文字",Color.red,false,20);  
          setDocs("第二行的文字",Color.BLACK,true,25);  
          setDocs("第三行的文字",Color.BLUE,false,20);  
          frame.getContentPane().add(textPane,   BorderLayout.CENTER);  
          frame.addWindowListener(new   WindowAdapter()   {  
              public   void   windowClosing(WindowEvent   e)   {  
                  System.exit(0);  
              }});  
          frame.setSize(200,300);  
          frame.setVisible(true);  
      }  
      public   static   void   main(String[]   args)   {  
          Test   test   =   new   Test();  
          test.gui();  
      }  
  }

 

posted @ 2011-10-11 13:23  残星  阅读(448)  评论(0编辑  收藏  举报