Almost-Native

자바 스윙 jEditorPane 하이라이트 색상 (Highlight Color) 넣기 본문

Java 프로그램 개발, IT

자바 스윙 jEditorPane 하이라이트 색상 (Highlight Color) 넣기

2022. 7. 10. 10:29

텍스트박스에 있는 문자열에서 특정 문자열을 찾아서 하이라이트 컬러를 넣는 프로그램 샘플입니다.

jEditorPane 을 사용했습니다.

 

 

넷빈즈 디자인화면에서 jEditorPane 붙여넣고, 아래의 코드를 작성했습니다.

 

    public void Set_jEditorPane1() {
        try {
            String strText = "붉게 물든 노을 바라보며\n" +
                            "슬픈 그대 얼굴 생각이나\n" +
                            "고개 숙이네 눈물 흘러\n" +
                            "아무 말 할 수가 없지만\n" +
                            "난 너를 사랑하네 (후우우)\n" +
                            "이 세상은 너뿐이야\n" +
                            "소리쳐 부르지만\n" +
                            "저 대답 없는 노을만 붉게 타는데\n" +
                            "그 세월 속에 잊어야 할\n" +
                            "기억들이 다시 생각나면\n" +
                            "눈 감아요\n" +
                            "소리 없이 그 이름 불러요\n" +
                            "아름다웠던 그대 모습\n" +
                            "다시 볼 수 없는 것 알아요\n" +
                            "후회 없어 저 타는 노을\n" +
                            "붉은 노을처럼\n" +
                            "난 너를 사랑하네 (후우우)\n" +
                            "이 세상은 너뿐이야\n" +
                            "소리쳐 부르지만\n" +
                            "저 대답 없는 노을만 붉게 타는데\n" +
                            "어데로 갔을까? 사랑하던\n" +
                            "슬픈 그대 얼굴 보고 싶어\n" +
                            "깊은 사랑 후회 없어\n" +
                            "저 타는 붉은 노을처럼\n" +
                            "난 너를 사랑하네 (후우우)\n" +
                            "이 세상은 너뿐이야\n" +
                            "소리쳐 부르지만\n" +
                            "저 대답 없는 노을만 붉게 타는데";
            jEditorPane1.setText(strText);
 
            String find = "노을";
            int nPos = 0;
 
            while (true) {
                nPos = strText.indexOf(find, nPos + find.length());
                if (nPos == -1break;
 
                javax.swing.text.DefaultHighlighter.DefaultHighlightPainter highlightPainter =
                        new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(Color.RED);
                jEditorPane1.getHighlighter().addHighlight(nPos, nPos + find.length(), highlightPainter);
            }
        } catch (BadLocationException ex) {
            Logger.getLogger(GridTest.class.getName()).log(Level.SEVERE, null, ex);
        }
    }    

 

핵심은 아래 2라인이고, 나머지는 문자열 찾는 부분과 에러 처리하는 부분으로 구성되어 있습니다.

 

                javax.swing.text.DefaultHighlighter.DefaultHighlightPainter highlightPainter =
                        new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(Color.RED);
                jEditorPane1.getHighlighter().addHighlight(nPos, nPos + find.length(), highlightPainter);

 

노란색은 Color.YELLOW 를 넣으면 되고, 사용자 색상은 new Color(200, 255, 200) 와 같이 R,G,B 색상 조합으로 만들면 되겄심다.

 

Comments