JEditorPane
은 그대로 텍스트를 JTextArea
에 표시하고 싶습니다. JEditorPane
을 사용하는 이유는 특정 텍스트 패턴 (a href
)으로 링크를 만들고 싶기 때문입니다. 나는 JTextPane
을 들여다 보았지만 쉬운 방법을 찾지 못했습니다. 텍스트는 채워져 있으므로 채우기 및 올바른 공백 수의 유지가 중요합니다. 디스플레이의 차이는 다음과 같다 : JTextArea와 같이 JEditorPane에 텍스트를 표시하려면 어떻게해야합니까?
내가 JEditorPane
은 (좌측) JTextArea
에서와 정확히 동일한 방식 텍스트를 표시하기 원한다. 어쩌면, 그것을하는 또 다른 방법이 있을까요? 1233
과 같은 일부 텍스트에는 링크가 있고 관련 텍스트 리스너는 텍스트가 올바르게 표시되면 트리거됩니다.
코드 : 일반 텍스트를 사용하는 경우
import javax.swing.*;
import javax.swing.text.JTextComponent;
import java.awt.*;
public class Test {
public static void main(String[] args)throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
final static String sampleText=
"\n" +
" 1233 2001/16/07 This is test\n" +
" With padding\n" +
" more padding\n" +
" and more padding";
private static void createAndShowGUI() {
final JFrame frame = new JFrame("test");
//final JTextComponent textComponent=new JTextArea();
final JEditorPane textComponent=new JEditorPane();
textComponent.setContentType("text/html");
textComponent.setFont(textComponent.getFont().deriveFont(11.5f));// larger font
textComponent.setText(sampleText);
frame.getContentPane().add(textComponent);
frame.setPreferredSize(new Dimension(370,120));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
}
이 해결책이 될 수는 :
textComponent.setFont(new JTextArea().getFont().deriveFont(11.5f));
하지만 서식이 손실된다. 그래서, contentType을 "text/html"로 설정할 때 이것은 작동하지 않습니다.
이textComponent.setFont(new JTextArea().getFont().deriveFont(11.5f));
이 힘 JEditorPane
사용 :
+1은 단순히 고정 폭 글꼴을 사용 JTextArea에 – mKorbel
에 대한 고정 폭 글꼴을 사용합니다 JEditorPane의 메소드 –