JTextPane에서 공간 기반 줄 바꿈을 사용 가능하게 할 수 있습니까?JTextPane에서 공백 행 줄 바꿈을 사용하려면 어떻게해야합니까?
콘텐츠의 스타일을 지정해야하기 때문에 JTextArea를 사용할 수 없습니다.
JTextPane에서 공간 기반 줄 바꿈을 사용 가능하게 할 수 있습니까?JTextPane에서 공백 행 줄 바꿈을 사용하려면 어떻게해야합니까?
콘텐츠의 스타일을 지정해야하기 때문에 JTextArea를 사용할 수 없습니다.
당신이 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);
}
});
}
}
당신은 다음과 같은 줄 바꿈을 수행하는 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) {}
});
이것은 JTextPane의 기본 동작입니다. 즉, 전체 단어가 줄에 맞지 않을 경우 이전 단어가 줄 바꿈됩니다. 문제가있는 경우 문제를 나타내는 [SSCCE] (http://sscce.org/)를 게시하십시오. – camickr