Java 仅当在JtextArea中遇到第一个字符直到LineEndOffset时,才将高亮显示应用于行
我的问题很简单 我有一个工作区。我的目标是突出显示该文本区域中第一个字符开头的一行。。 通过使用Java line start和end offset,我可以突出显示整行,但它看起来很难看 我正在尝试从该行获取所有文本。通常它将包含空格。 我尝试的是:Java 仅当在JtextArea中遇到第一个字符直到LineEndOffset时,才将高亮显示应用于行,java,swing,jtextarea,swing-highlighter,Java,Swing,Jtextarea,Swing Highlighter,我的问题很简单 我有一个工作区。我的目标是突出显示该文本区域中第一个字符开头的一行。。 通过使用Java line start和end offset,我可以突出显示整行,但它看起来很难看 我正在尝试从该行获取所有文本。通常它将包含空格。 我尝试的是: String text = textArea_1.getText(); //My TextArea int startIndex = textArea_1.getLineStartOffset(i11); //i11 is the Line Num
String text = textArea_1.getText(); //My TextArea
int startIndex = textArea_1.getLineStartOffset(i11); //i11 is the Line Number
int endIndex = textArea_1.getLineEndOffset(i11);
String myString = text.substring(startIndex, endIndex);
//I get all text from that line
for(int i1 = 0; i1 < myString.length(); i1++){
//This is trying to increment startindex until it gets a non empty space,
//the counter should stop.
while(Character.isWhitespace(myString.charAt(i1))){
startIndex++;
break;
}
}
String myString2 = text.substring(startIndex, endIndex);
//I now pass the new startIndex
String [] javaWords = {myString2};//Function highlight takes an array.
System.out.println("String to Highlight: " + myString2);
highLight(textArea_1, javaWords);//Function to Highlight
应强调上述内容。我遗漏了什么吗?问题在于循环..已修复:
String text = textArea_1.getText();
int startIndex = textArea_1.getLineStartOffset(i11);
int endIndex = textArea_1.getLineEndOffset(i11);
String myString = text.substring(startIndex, endIndex);
for(int i1 = 0; i1 < myString.length(); i1++){
if(Character.isWhitespace(myString.charAt(i1))){
startIndex++;
}
if(!Character.isWhitespace(myString.charAt(i1))){
startIndex = startIndex+0;;
break;
}
}
String myString2 = text.substring(startIndex, endIndex);
String [] javaWords = {myString2};
System.out.println("String to Highlight: " + myString2);
highLight(textArea_1, javaWords);
结果:
试试@camickr的线条画,引用。我设法使它工作了..你可以详细说明你是如何使它工作的。
in x;
string y;
chr z;
String text = textArea_1.getText();
int startIndex = textArea_1.getLineStartOffset(i11);
int endIndex = textArea_1.getLineEndOffset(i11);
String myString = text.substring(startIndex, endIndex);
for(int i1 = 0; i1 < myString.length(); i1++){
if(Character.isWhitespace(myString.charAt(i1))){
startIndex++;
}
if(!Character.isWhitespace(myString.charAt(i1))){
startIndex = startIndex+0;;
break;
}
}
String myString2 = text.substring(startIndex, endIndex);
String [] javaWords = {myString2};
System.out.println("String to Highlight: " + myString2);
highLight(textArea_1, javaWords);