了解下JAVA的怎样更好的利用JTextPane
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。我常常在网上瞥见很多伴侣问,怎样在JTextArea中把持字符,怎样设置特定字符的色彩等等。我在用Java做一个SQL查询剖析器中发明了一个对照好的办理计划就是利用JTextPane,那末怎样更好的利用JTextPane呢,我现摘自我那部分程序的一部分,供人人参考。
packagecom.JDAGUI;
importjavax.swing.text.*;
importjava.util.*;
importjava.awt.*;
importcom.JDA.*;
/**
*@authorwhxu
*/
publicclassJDAStyledDocumentextendsDefaultStyledDocument
{
privateinttype=-1;//数据毗连范例
AttributeSetmyAttributeSet=null;
publicJDAStyledDocument(inttype)
{
this.type=type;
}
/**
*拔出字符串
*/
publicvoidinsertString(intoffset,Stringstr,AttributeSeta)
throwsBadLocationException
{
this.myAttributeSet=a;
super.insertString(offset,str,a);
setSyntaxColor(offset,str.length());
}
/**
*删除字符串
*/
publicvoidremove(intoffs,intlen)
throwsBadLocationException
{
super.remove(offs,len);
setSyntaxColor(offs);
}
/**
*猎取制订地位的字符
*/
privateStringgetPositionChar(intoffset)
{
Stringstr="";
try
{
str=getText(offset,1);
}
catch(BadLocationExceptionex)
{
//ex.printStackTrace(System.out);
}
returnstr;
}
/**
*从指定的地位入手下手,倒推到第一个碰到空格地位
*/
privateStringgetBeforeBlankString(intoffset)
{
Stringstr="";
if(offset<0)return"";
str=getPositionChar(offset);
if(SyntaxMgr.isSpaceChar(str))
return"";
Stringr=getBeforeBlankString(offset-1);
returnr+str;
}
/**
*从指定的地位入手下手,顺推到第一个碰到空格地位
*/
privateStringgetAfterBlankString(intoffset)
{
Stringstr="";
if(offset>getLength())return"";
str=getPositionChar(offset);
if(SyntaxMgr.isSpaceChar(str))
return"";
Stringr=getAfterBlankString(offset+1);
returnstr+r;
}
/**
* 依据Postion,向前判别,向后判别,设置色彩,前往设置色彩开端的地位
*/
privateintsetSyntaxColor(intoffset)
{
if(offset<0)returnoffset;//假如设置的地位不存在,能够不必思索
if(myAttributeSet==null)returnoffset;//假如myAttributeSet为null,能够不必思索
StringifSyntax="";
Stringbefore=getBeforeBlankString(offset-1);
Stringafter=getAfterBlankString(offset);
Syntax=(before+after).trim();
intstart=offset-before.length();
inttmp_len=ifSyntax.length();
if(start<0||tmp_len<=0)returnoffset;//假如设置色彩的字符串为空,前往
//设置色彩
StyleConstants.setForeground((MutableAttributeSet)myAttributeSet,
SyntaxMgr.isSyntax(type,ifSyntax));
setCharacterAttributes(start,tmp_len,myAttributeSet,true);
returnstart+tmp_len;
}
/**
*依据一个局限,设置该局限内的的SyntaxColor
*/
privateintsetSyntaxColor(intoffset,intlen)
throwsBadLocationException
{
//假如局限不存在,不思索
if(offset<0||len<0)returnoffset;
inttmp_offset=offset;
while(tmp_offset<offset+len)
{
tmp_offset=setSyntaxColor(tmp_offset);
tmp_offset=getNextWordOffset(tmp_offset);
}
tmp_offset=setSyntaxColor(tmp_offset);//设置轮回完后的最初一个单词
returntmp_offset;
}
/**
*依据Postion,取得下一个单词的入手下手点
*/
privateintgetNextWordOffset(intoffset)
{
intrOffset=offset;
inttextlength=getLength();
while(rOffset<=textlength&&offset>=0)
{
Stringstr=getPositionChar(rOffset);
if(!SyntaxMgr.isSpaceChar(str))
{
break;
}
rOffset+=1;
}
if(rOffset!=offset)//设置距离的色彩
{
//设置色彩
StyleConstants.setForeground((MutableAttributeSet)myAttributeSet,
SyntaxColorMgr.getSpaceColor());
setCharacterAttributes(offset,rOffset-offset,myAttributeSet,true);
}
returnrOffset;
}
}
到此为此,我们做好了一个合用于JTextPane的Document。利用JTextPane就对照复杂了。
能够如许利用
JTextPanesqlPane=newJTextPane(newJDAStyledDocument(type));
由于我这个例子中利用了依据数据库范例分歧来显现分歧的关头字,以是我传了一个inttype。
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践! Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 是一种语言,用以产生「小应用程序(Applet(s)) 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
页:
[1]