2013-05-28 4 views
1

jTextArea에서 선택된 텍스트에 대해 정의 된 색상 (예 : 빨간색)을 설정해야합니다. 텍스트 영역 (jTextArea)에서 강조 표시하는 것과 같습니다. 특정 텍스트를 선택하고 아무 버튼이나 클릭하면 사전 정의 된 색상으로 변경됩니다.jTextArea에서 선택한 텍스트의 글꼴 색을 설정하는 방법은 무엇입니까?

해결책이있는 경우 jTextArea를 jTextPane 또는 JEditorPane으로 변경할 수 있습니다. 그것이 일반 텍스트가 area.You 때문에이 사용 JTextArea에 할 수없는 모든

+0

지금까지 시도한 코드를 표시하십시오. – EnKrypt

+1

'JTextPane' 또는'JEditorPane'이 당신에게 더 좋은 옵션이 될 수 있습니다. – berry120

+0

감사합니다 베리 어떤 해결책이 있다면 jTextPane 또는 jEditorPane으로 변경할 수 있습니다. –

답변

3

StyledDocument로 사용할 수있는 스타일이 지정된 텍스트 (문자의 색상 속성 포함)는 JTextPane 및 JEditorPane에서 사용할 수 있습니다. 따라서 JTextPane을 사용하십시오.

private void buttonActionPerformed(java.awt.event.ActionEvent evt) { 
    StyledDocument doc = textPane.getStyledDocument(); 
    int start = textPane.getSelectionStart(); 
    int end = textPane.getSelectionEnd(); 
    if (start == end) { // No selection, cursor position. 
     return; 
    } 
    if (start > end) { // Backwards selection? 
     int life = start; 
     start = end; 
     end = life; 
    } 
    Style style = textPane.addStyle("MyHilite", null); 
    StyleConstants.setForeground(style, Color.GREEN.darker()); 
    //style = textPane.getStyle("MyHilite"); 
    doc.setCharacterAttributes(start, end - start, style, false); 
}          

정신 : 스타일은 JTextPane의 생성에 설정 될 수 있고, JTextPane의 필드로부터 검색된 프로그램 코드 outcommented 등.

+0

감사합니다.이 코드가 작동한다고 생각합니다. StyledDocument 및 다른 스타일을 사용하는 방법? 그것은 "기호를 찾을 수 없습니다"를 보여줍니다. –

+1

JTextPane textPane과'import javax.swing.text. *'가 있어야합니다. 그리고 나서 addActionListener 또는 그 어딘가에 JButton이있을 것입니다. –

+0

완벽하게 작동 해 주셔서 대단히 감사합니다! –

1

먼저 우선은이 HTMLDocument의를 사용하고 want.See 무엇을 할 수 JEditorPane.see here 같은 스타일의 텍스트 영역을 사용할 필요가 here

관련 문제