山那边是海 发表于 2015-1-18 11:26:45

了解下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我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!

再现理想 发表于 2015-1-21 06:54:03

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

第二个灵魂 发表于 2015-1-30 10:13:37

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

admin 发表于 2015-2-2 10:57:24

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

活着的死人 发表于 2015-2-2 11:41:31

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

简单生活 发表于 2015-2-3 19:43:50

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

只想知道 发表于 2015-2-8 06:04:18

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

小女巫 发表于 2015-2-14 02:40:35

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

深爱那片海 发表于 2015-2-22 20:54:36

是一种语言,用以产生「小应用程序(Applet(s))

愤怒的大鸟 发表于 2015-2-27 04:58:43

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

兰色精灵 发表于 2015-3-2 18:38:00

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

柔情似水 发表于 2015-3-11 05:20:32

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

冷月葬花魂 发表于 2015-3-17 21:09:30

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

透明 发表于 2015-3-25 02:38:58

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
页: [1]
查看完整版本: 了解下JAVA的怎样更好的利用JTextPane