java Swing设置文本框文字颜色和字体

在java中文本编辑器单独设置文字的控件有个JTextPane,而通常使用的JTextArea似乎不能设置所选文字的颜色和字体。

//实例化一个文本编辑的控件

JTextPane editorPane=new JTextPane();

//根据所选颜色进行设置

JColorChooser colorChooser=new JColorChooser();
//得到所选颜色   

Color color= colorChooser.showDialog(null, "字体颜色", Color.BLACK);
//得到编辑器中的文档   

Document document= editorPane.getDocument();
    try {

//添加一个可以设置样式的类
     StyleContext   sc   =   StyleContext.getDefaultStyleContext();

//为所添加的样式类添加字体颜色
     AttributeSet   aset   =   sc.addAttribute(SimpleAttributeSet.EMPTY,StyleConstants.Foreground, color);
     Font font=new Font("隶书",Font.BOLD,30);
//为添加的样式类添加字体    

aset=sc.addAttribute(aset, StyleConstants.Family, font.getFamily());
   //设置字体的大小

  aset=sc.addAttribute(aset, StyleConstants.FontSize, 30);
     int start= editorPane.getSelectionStart();
     int end=editorPane.getSelectionEnd();
     String str= document.getText(start,end-start);
//由于没找到直接设置所选字的方法,只有先移除原来的字符串    

document.remove(start, end-start);

//重新插入字符串,并按新设置的样式进行插入
     document.insertString(start, str, aset);
    } catch (BadLocationException e1) {
     // TODO Auto-generated catch block
     e1.printStackTrace();
    }

你可能感兴趣的:(java Swing设置文本框文字颜色和字体)