2016-08-12 7 views
0

JTextPane에서 공간 기반 줄 바꿈을 사용 가능하게 할 수 있습니까?JTextPane에서 공백 행 줄 바꿈을 사용하려면 어떻게해야합니까?

콘텐츠의 스타일을 지정해야하기 때문에 JTextArea를 사용할 수 없습니다.

+3

이것은 JTextPane의 기본 동작입니다. 즉, 전체 단어가 줄에 맞지 않을 경우 이전 단어가 줄 바꿈됩니다. 문제가있는 경우 문제를 나타내는 [SSCCE] (http://sscce.org/)를 게시하십시오. – camickr

답변

1

당신이 JTextPane의 라인 - 랩 기본 JFrame의를 만드는 방법이있다. camickr에 의해 말했듯이 이것이 기본 동작입니다.

package test; 

import java.awt.BorderLayout; 
import javax.swing.JFrame; 
import javax.swing.JTextPane; 
import javax.swing.SwingUtilities; 
/** 
* 
* @author floz 
*/ 
public class Test { 

    public static void main(String[] args) { 

     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       final JFrame mainFrame = new JFrame("test"); 
       mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       final JTextPane field = new JTextPane(); 
       field.setText("qds qljsd qsld qlskd qlkds fqlk sdkf qlskdfqlk sdlf qsld ql sdf qlskd fqks lqksjd f"); 

       mainFrame.getContentPane().setLayout(new BorderLayout()); 
       mainFrame.getContentPane().add(field,BorderLayout.CENTER); 
       mainFrame.setSize(200,200); 
       mainFrame.setVisible(true); 
      } 
     }); 
    } 
} 
0

당신은 다음과 같은 줄 바꿈을 수행하는 JTextPane의 문서에 리스너를 추가 할 수 있습니다

pane.getDocument().addDocumentListener(new DocumentListener() 
    { 

      @Override 
      public void insertUpdate(DocumentEvent e) 
      { 
       if(e.getOffset() >= pane.getSize().getWidth()/pane.getFont().getSize()) 
       { 
        String str = pane.getText(); 
        if(str.length() <= str.lastIndexOf(32)) 
        { 
          try 
          { 
           e.getDocument().insertString(str.lastIndexOf(32), "\n", pane.getCharacterAttributes()); 

          } catch (BadLocationException e1) 
          { 
           e1.printStackTrace(); 
          } 
        } 
       }     
      } 

      @Override 
      public void removeUpdate(DocumentEvent e) {} 

      @Override 
      public void changedUpdate(DocumentEvent e) {} 

    }); 
+2

프레임의 크기가 조정되어 텍스트 창의 크기가 조정되는 경우 어떻게됩니까? 또는 여러 줄의 텍스트를 텍스트 창에 붙여 넣으면 어떻게 될까요? 이제 하드 코딩 된 줄 바꿈으로 인해 텍스트가 다시 조정되지 않습니다. – camickr

+0

@camickr : 음, 그렇다면 그는 자기 자신을 감당해야합니다. 질문은 크기 조정에 대한 언급이 없습니다. 방금 그에게 그 문제를 해결하는 기본적인 아이디어를주었습니다. –

+0

그리고이 때문에 일반적으로보기에서 모델을 분리하는 것이 좋습니다. – Sharcoux