Java 仅当在JtextArea中遇到第一个字符直到LineEndOffset时,才将高亮显示应用于行

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

我的问题很简单

我有一个工作区。我的目标是突出显示该文本区域中第一个字符开头的一行。。 通过使用Java line start和end offset,我可以突出显示整行,但它看起来很难看

我正在尝试从该行获取所有文本。通常它将包含空格。 我尝试的是:

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);