2013-07-17 6 views
0

Swing 응용 프로그램에 초보자입니다. firstLineIndent를 텍스트에 추가해야하지만이 값을 음수로 설정하면 단락의 첫 번째 줄이 약간 흐리게 보입니다. StyleConstants.setFirstLineIndent (attr, -50) 메소드의 동작을 인식 할 수 없습니다. 이 오류를 해결하는 방법.Swing에서 StyleConstants.setFirstLineIndent를 음수로 설정 한 후 흐린 텍스트

http://java-sl.com/tip_hanging_first_line.html

감사합니다 ...

+0

당신이 http://stackoverflow.com/questions/12817239/jtextpane-and-hanging-indent-glitch – Ups

답변

1

그 예는 JEditorPane의 연장 이유를 확실하지 :

아래 내가 참조로 사용하고있는 코드의 링크입니다. 편집기 창은 HTML 용입니다. 스타일이 지정된 텍스트에 JTextPane을 사용하는 것을 선호합니다. 또한 사용자 정의 편집기 키트가 사용되는 이유를 모릅니다.

import javax.swing.*; 
import javax.swing.text.*; 
import java.awt.*; 

//public class HangingIndent extends JEditorPane { 
public class HangingIndent extends JTextPane { 

    public static void main(String[] args) { 
     JFrame frame = new JFrame("Negative (Hanging) first line indent"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     final HangingIndent app = new HangingIndent(); 
//  app.setEditorKit(new MyEditorKit()); 
     app.setText("The paragraph with long text is necessary to show how " + 
       "hanging indent can be achieved. We should set not only the " + 
       "first line indent but the same left indent."); 
     StyledDocument doc=(StyledDocument)app.getDocument(); 
     SimpleAttributeSet attrs=new SimpleAttributeSet(); 
     StyleConstants.setFirstLineIndent(attrs, -50); 
     StyleConstants.setLeftIndent(attrs, 50); 

     doc.setParagraphAttributes(0,doc.getLength(),attrs, false); 

     JScrollPane scroll = new JScrollPane(app); 
     frame.getContentPane().add(scroll); 

     frame.setSize(400, 200); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 

    public HangingIndent() { 
     super(); 
    } 
} 
+0

감사 회신 문의 해주세요하지만이 코드를 :

다음 코드는 나를 위해 작동 또한 동일한 결과를 제공합니다. 첫 번째 줄은 두 번째 줄보다 약간 굵거나 흐릿합니다. firstLineIndent를 양수로 변경하면 텍스트가 정상적으로 나타납니다. – Ups

+0

@Ups, 음, 무슨 뜻인지 알 겠어. 다른 종류의 앤티 앨리어싱을 수행하는 것 같습니다. 들여 쓰기가 왜이 점에 영향을 줄지 나는 모른다. – camickr

+0

JEditorPane과 JTextPane의 차이점을 지적 해 주셔서 감사합니다. –