当前位置: 代码迷 >> Eclipse >> eclipse RCp 里面的text文本域 怎么做到像QQ一样,可以控制里面某段某段的字的颜色和字体
  详细解决方案

eclipse RCp 里面的text文本域 怎么做到像QQ一样,可以控制里面某段某段的字的颜色和字体

热度:404   发布时间:2016-04-23 11:28:34.0
eclipse RCp 里面的text文本域 如何做到像QQ一样,可以控制里面某段某段的字的颜色和字体?
如题。

我自己做了个类似QQ的程序,但不知道如何控制 输出的 消息窗体的 字体颜色。

输入发送端的字体可以控制,但是一控制就是整个输入框都一个颜色。所以输出框的颜色不知道如何控制 某些字的字体和颜色。
有没有达人相助,谢谢

------解决方案--------------------
你可以使用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();
}
 }
------解决方案--------------------
StyleText
  相关解决方案