1
클라이언트 측에서 보낸 수정 메시지의 오류를 강조하려고합니다. 그러나 이렇게하면이 알고리즘을 따르지 않습니다. fix 메시지에 문자열이있는 오류가 있으면 전체 문자열을 강조 표시하고 그렇지 않으면 강조 표시되지 않습니다. 기본적으로 내가 묻는 것은 오류가 발생하면 전체 출력을 강조 표시하는 대신 여러 부분을 강조 표시하는 방법입니다. 예를 들어별도로 강조 표시하는 방법
: 내가
no error - unhighlighted
error - highlighted
no error - highlighted
no error - highlighted
no error - highlighted
error - highlighted
납니다 오류가 내가 원하는 :
no error - unhighlighted
error - highlighted
no error - unhighlighted
no error - unhighlighted
no error - unhighlighted
error - highlighted
문제 영역
if(outputLine.equals("No errors")) {
tfCSVLine.append(outputLine+"\n\n\n");
lengthH += (inputLine+"\n\n\n").length();
}
else {
tfCSVLine.append(outputLine+"\n\n\n");
int pos = inputLine.indexOf(inputLine, 0);
int len = lengthH;
lengthH += (inputLine+"\n\n\n").length();
h.addHighlight(len, lengthH+(inputLine+"\n\n\n").length(),
DefaultHighlighter.DefaultPainter);
}
프로그램
Highlighter h = tfFIXMsg.getHighlighter();
try {
int lengthH = 0;
while ((inputLine = in.readLine()) != null) {
System.out.println ("Server: " + inputLine);
tfFIXMsg.append(inputLine + "\n\n\n");
if (inputLine.trim().equals("Bye.")) {
System.out.println("Exit program");
break;
}
Scanner input1 = new Scanner(new File(csvName));
Scanner input2 = new Scanner(new File(csvName));
Scanner input3 = new Scanner(new File(csvName));
Scanner input4 = new Scanner(new File(csvName));
String csvline = getCsvLineVal(getLocation34CSV(
getTag34Value(Tag34Location(getTagCSV(parseFixMsg(
inputLine ,inputLine))), getValueCSV(parseFixMsg(
inputLine ,inputLine))), getVal34(input1,input2)),
getCSVLine(input3, input4));
outputLine = compareClientFixCSV(getTagCSV(parseFixMsg(
inputLine ,inputLine)), getValueCSV(parseFixMsg(
inputLine ,inputLine)), getCSVTag(csvline), getCSVValue(csvline));
out.println(outputLine);
if(outputLine.equals("No errors")) {
tfCSVLine.append(outputLine+"\n\n\n");
lengthH += (inputLine+"\n\n\n").length();
}
else {
tfCSVLine.append(outputLine+"\n\n\n");
int pos = inputLine.indexOf(inputLine, 0);
int len = lengthH;
lengthH += (inputLine+"\n\n\n").length();
h.addHighlight(len, lengthH+(inputLine+"\n\n\n").length(),
DefaultHighlighter.DefaultPainter);
}
input1.close();
input2.close();
input3.close();
input4.close();
}
가까운 미래에 괜찮은 대답이 없으면 [sscce] (http://sscce.org)를 작성하고 게시하는 것이 좋습니다. –
그리고 이것은 JTextArea로 과도 할 수 있습니다. JTextPane을 사용하십시오. – mKorbel
Loedolff의 답변이 도움이되지 않았 음을 짐작합니다. 그렇다면 다시 (그리고 깨진 기록처럼 들리며 유감스럽게 생각합니다.) 여전히 걸려 있다면 [sscce] (http://sscce.org)를 만들고 게시하는 것을 고려하십시오. –