📄 javatext.java
字号:
package org.loon.framework.ide.test;
/**
* <p>Title: LoonFramework</p>
* <p>Description:</p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company: LoonFramework</p>
* @author chenpeng
* @email:ceponline@yahoo.com.cn
* @version 0.1
*/
import java.awt.Color;
import javax.swing.JTextPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
public class JavaText extends JTextPane
implements HyperlinkListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
public JavaText()
{
}
public void setMark(Color acolor[])
{
deleteCode("\r");
String s = getText();
KeywordTokenizer mystringtokenizer = new KeywordTokenizer(s, acolor[2], acolor[3]);
setBackground(acolor[0]);
setForeground(acolor[1]);
for(int i = 0; i < mystringtokenizer.length(); i++)
{
String s1 = mystringtokenizer.getToken(i);
int j = mystringtokenizer.getIndex(i);
select(j, j + s1.length());
SimpleAttributeSet simpleattributeset = new SimpleAttributeSet();
StyleConstants.setForeground(simpleattributeset, mystringtokenizer.getColor(i));
try
{
setCharacterAttributes(simpleattributeset, true);
}
catch(Exception exception) { }
}
setColor(s, acolor[5], "/*", "*/", "*/");
setColor(s, acolor[5], "//", "\n", "\n");
setColor(s, acolor[4], "\"", "\"", "\n");
select(0, 0);
}
public void setColor(String s, Color color, String s1, String s2, String s3)
{
int i = s.length();
int j = s1.length();
int k = s2.length();
int l = s3.length();
boolean flag = false;
boolean flag1 = false;
int i1 = 0;
try
{
for(int j1 = 0; j1 < i; j1++)
if(j1 < i - 2 && s.substring(j1, j1 + 2).equals("\\\\"))
{
j1++;
flag1 = true;
} else
{
if(!flag)
{
if((j1 < 1 || flag1 || !s.substring(j1 - 1, j1).equals("\\")) && s.substring(j1, j1 + j).equals(s1))
{
flag = true;
i1 = j1;
}
} else
if((s.substring(j1, j1 + k).equals(s2) || s.substring(j1, j1 + l).equals(s3)) && (j1 < 1 || flag1 || !s.substring(j1 - 1, j1).equals("\\")))
{
int k1;
if(s.substring(j1, j1 + k).equals(s2))
k1 = k;
else
k1 = l;
flag = false;
select(i1, j1 + k1);
SimpleAttributeSet simpleattributeset1 = new SimpleAttributeSet();
StyleConstants.setForeground(simpleattributeset1, color);
try
{
setCharacterAttributes(simpleattributeset1, true);
}
catch(Exception exception2) { }
}
flag1 = false;
}
}
catch(Exception exception) { }
if(flag)
{
select(i1, i);
SimpleAttributeSet simpleattributeset = new SimpleAttributeSet();
StyleConstants.setForeground(simpleattributeset, color);
try
{
setCharacterAttributes(simpleattributeset, true);
}
catch(Exception exception1) { }
}
}
public void deleteCode(String s)
{
StringBuffer stringbuffer = new StringBuffer(getText());
for(int i = stringbuffer.length() - 1; i >= 0; i--)
if(stringbuffer.substring(i, i + s.length()).equals(s))
stringbuffer.delete(i, i + s.length());
setText(stringbuffer.toString());
}
public void setCursor(int i)
{
String s = getText();
int j = 0;
int k = 0;
for(k = 0; j < i - 1 && k < s.length(); k++)
if(s.substring(k, k + 1).equals("\n"))
j++;
if(k < s.length())
setCaretPosition(k);
else
setCaretPosition(s.length() - 1);
}
public void insertCode(String s)
{
StringBuffer stringbuffer = new StringBuffer(getText());
for(int i = stringbuffer.length() - 1; i >= 0; i--)
if(stringbuffer.substring(i, i + s.length()).equals("\n"))
stringbuffer.insert(i, s);
setText(stringbuffer.toString());
}
public void setURL(String s)
{
setEditable(false);
addHyperlinkListener(this);
try
{
setPage(s);
}
catch(Exception exception) { }
setContentType("text/html");
}
public void hyperlinkUpdate(HyperlinkEvent hyperlinkevent)
{
if(hyperlinkevent.getEventType() == javax.swing.event.HyperlinkEvent.EventType.ACTIVATED)
try
{
setPage(hyperlinkevent.getURL());
}
catch(Throwable throwable) { }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -