문제

이것은 팀 프로젝트를 위해 팀 프로젝트에 대해서도 조금 도전적이지만, JEditorPane를 사용하여 구문 강조 표시가있는 간단하면서도 우아한 텍스트 편집기를 함께 사용하려고 노력했습니다. 나는 > 에 걸렸습니다. 그리고 안에 물건을 넣으십시오. 일부 블로그 에서이 프로젝트가 나중에 다른 팀이 나중에 취해졌지만 아직 다시는 중단되었음을 발견했습니다. 나는 코드 접이식과 물건을 갖는 것처럼 너무 공상적이지 않아도 필요하지 않습니다 (비록 내가이 일을하는 방법을 알아내는 것을 알아 낸 유혹을 느끼지 만, 적어도 기본 구문 강조 표시 가 필요합니다. 예를 들어 메모장 ++와 마찬가지로 맨 왼쪽에
라인 번호 . 최소한 Java Source-Code를 강조 표시 할 필요가 있음을 명심하십시오.

제가 찾고있는 것은 튜토리얼, 문서화 된 예제 및 샘플 코드, 사전 제조 된 패키지, 넷불 도구조차도 트릭을 수행 할 수있는 도구라도, 나는 처음부터 작성된 소스 코드를 필요로하지 않는다, 나는 단지 사용할 수있는 구현이 필요합니다. 미리 감사드립니다!

psthis는 상업적이거나 너무 크지 않을 것입니다, 왜 내가 많은 프로그래밍 편집자가있을 때 바퀴를 재발견하고 싶은 이유를 묻지 말고, 나는 학습을하고 이것은 나를 위해 좋은 운동으로 왔습니다! / P>

도움이 되었습니까?

해결책

rsyntaxtextarea 는 BSD 라이센스가 있고 요구 사항을 지원하고 코드 폴딩 등을 지원합니다.사용하기 매우 간단합니다.

다른 팁

나는 비슷한 프로젝트에서 일했고 여기에서 내가 일어난 일이 여기에 일했습니다.멀리 줄 번호는 실제 텍스트 창에 연결된 스크롤 패널을 사용했습니다.스크롤 패널은 다음 코드로 숫자를 변경했습니다.

public class LineNumberingTextArea extends JTextArea
{
private JTextPane textArea;


/**
 * This is the contructor that creates the LinNumbering TextArea.
 *
 * @param textArea The textArea that we will be modifying to add the 
 * line numbers to it.
 */
public LineNumberingTextArea(JTextPane textArea)
{
    this.textArea = textArea;
    setBackground(Color.BLACK);
    textArea.setFont(new Font("Consolas", Font.BOLD, 14));
    setEditable(false);
}

/**
 * This method will update the line numbers.
 */
public void updateLineNumbers()
{
    String lineNumbersText = getLineNumbersText();
    setText(lineNumbersText);
}


/**
 * This method will set the line numbers to show up on the JTextPane.
 *
 * @return This method will return a String which will be added to the 
 * the lineNumbering area in the JTextPane.
 */
private String getLineNumbersText()
{
    int counter = 0;
    int caretPosition = textArea.getDocument().getLength();
    Element root = textArea.getDocument().getDefaultRootElement();
    StringBuilder lineNumbersTextBuilder = new StringBuilder();
    lineNumbersTextBuilder.append("1").append(System.lineSeparator());

    for (int elementIndex = 2; elementIndex < root.getElementIndex(caretPosition) +2; 
        elementIndex++)
    {
        lineNumbersTextBuilder.append(elementIndex).append(System.lineSeparator());
    }
    return lineNumbersTextBuilder.toString();
}
}
.

구문 강조 표시는 쉬운 작업이 아니지만 특정 언어에 대한 모든 키워드가 포함 된 일부 텍스트 파일을 기반으로 문자열을 검색 할 수있었습니다.기본적으로 파일의 확장자를 기반으로 함수는 올바른 파일을 찾고 텍스트 영역 내에 포함 된 파일의 단어를 찾습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top