[공개용 S/W 개발] SyntaxHighlighter를 위한 코드편집기 프로그램(escape)

류명운

·

2016. 8. 31. 01:08

반응형

[공개용 S/W 개발] SyntaxHighlighter를 위한 코드편집기 프로그램

이번 공개용 SW는 블로그의 포스팅 본문에 마크업 소스코드를 삽입할때 필요한 작업인 escape를 수행하는 프로그램으로 개인적으로 필요해서 간단히 만들어보게 되었습니다. 블로그에서 현재 소스코드를 본문에 표현하기 위해 사용 중인 자바스크립트로 작성된 'highlightjs' 프레임워크를 사용 중에 있습니다.


자바스크립트로 작성된 프레임워크이기 떄문에 변수 값으로 소스 코드를 처리하는 과정에서 '<', '>' 등의 문자는 '&lt;', '&gt;' 로 치환을 해주어야 프로그램이 제대로 동작을 할수 있습니다.


뭐 포스팅 작업을 할 때, 텍스트 편집기 창을 하나 더 띄운 다음에 한 번에 [찾아바꾸기] 기능을 하면 되는 작업이긴 하지만.. 매번 그러는 것도 귀찮아서 JAVA 기반의 간단한 편집 툴을 만들어봤습니다.


아래 개발환경 및 패키지구조 그리고 소스코드, 실행파일을 첨부하오니 참고하시기 바랍니다.

개발환경

  • 언어 - JAVA
  • 라이브러리 : JDK(JAVA_FX, Clipboard)
  • 개발도구 : NetBeans IDE (8.1)



핵심 소스

/**
 * escape 작업을 수행하며, [변환하기] 버튼을 클릭시 호출
 */
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // 사용자로부터 입력받은 코드 temp 변수에 담음
    	String temp = jTextArea1.getText();
        // 문자열 치환작업 '<'→'<', '>'→'>'
    	temp = temp.replaceAll("<", "<");
        temp = temp.replaceAll(">", ">");
        // 변경된 코드 출력
        jTextArea2.setText(temp);
 }

/**
 * copy 작업을 수행하며, [변경된 코드 복사하기(Copy)] 버튼을 클릭시 호출
 */
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    	// 클립보드 복사를 위한 클립보드 클래스 사용(jdk 1.3이상 지원)
    	Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    	// 복사할 내용 가져오기(변경된 코드)
    	String copyString = jTextArea2.getText();
    	if(copyString != null)
    	{
    	     StringSelection contents = new StringSelection(copyString);
    	     //클립보드에 변경된 코드내용 저장
    	     clipboard.setContents(contents, null);
    	}
}


* 아래와 같이 NetBeans IDE를 이용하여 GUI를 구성하였습니다.




SyntaxHighlighter_CodeEdit.exe


* 실행파일은 jsmooth 프로그램을 이용해서 제작(jar→exe)하였으니 공부에 참고하시기 바랍니다.


반응형