Thu*_*rge 4 java swing jeditorpane java-7
我想为用户创建一个大文本字段来输入内容.我还希望它使用默认的系统字体来匹配预期的外观.所以我尝试使用JEditorPane和默认构造函数,它使用纯文本编码.
JEditorPane editorPane = new JEditorPane();
editorPane.setText(gettysburgAddress);
Run Code Online (Sandbox Code Playgroud)

这样做的问题在于,纯文本编码不会在每个单词的末尾换行到换行符,只有当它用完字符时才会换行.
我尝试使用HTML编码,这个词包装:
JEditorPane editorPane = new JEditorPane("text/html", "");
editorPane.setText(gettysburgAddress);
Run Code Online (Sandbox Code Playgroud)

这有自动换行,但它默认为不同于系统默认的字体(Mac OS X上的Helvetica,我不想要.
我怎样才能充分利用这两个方面:自动换行和系统默认字体?我不需要任何特殊的格式或任何东西,所以如果可能的话,纯文本编码将会做.
如果所需要的只是一个使用系统字体的单词包装的JEditorPane,并且你不需要任何特殊的东西,比如风格化的文本或图像,那么最好只需切换到JTextArea,这是一个文本组件,只做普通的文本.默认情况下它不会自动换行,但它很容易实现:
JTextArea textArea = new JTextArea();
textArea.setLineWrap(true); //Makes the text wrap to the next line
textArea.setWrapStyleWord(true); //Makes the text wrap full words, not just letters
textArea.setText(gettysburgAddress);
Run Code Online (Sandbox Code Playgroud)
如果您出于某种原因绝对必须使用JEditorPane,则必须卷起袖子并对JEditorPane渲染文本的方式进行一些更改.从好的方面来说,您有几种不同的方法可供选择.您可以:
| 归档时间: |
|
| 查看次数: |
6305 次 |
| 最近记录: |