Java 带有样式化块的JTextField

Java 带有样式化块的JTextField,java,swing,jtextfield,styleddocument,Java,Swing,Jtextfield,Styleddocument,我需要某种JTextField,它用一个样式块替换回车字符,该块用另一种字体、样式或颜色显示文本 例如,文本 Dear Mr. Smith,\nblablabla...\nRegards... …将以一行JTextField的方式显示给用户: 亲爱的史密斯先生,布拉布拉布拉……问候 这些块应该是可选择的,就像它是单个字符一样,并且可以通过单个退格删除。按回车键将在插入符号位置添加一个 我认为重写纯文档是可能的,但我陷入了难以理解的文档和EditorKit API中。我需要一些关于这个的建议 我

我需要某种JTextField,它用一个样式块替换回车字符,该块用另一种字体、样式或颜色显示文本

例如,文本

Dear Mr. Smith,\nblablabla...\nRegards...
…将以一行JTextField的方式显示给用户:

亲爱的史密斯先生,布拉布拉布拉……问候

这些块应该是可选择的,就像它是单个字符一样,并且可以通过单个退格删除。按回车键将在插入符号位置添加一个

我认为重写
纯文档
是可能的,但我陷入了难以理解的文档和EditorKit API中。我需要一些关于这个的建议

我不反对使用
JTextPane
JEditorPane
,只要它的行为类似于
JTextField
(一行,没有滚动条)

有什么建议吗

有什么建议吗

改用
JTextArea
(多行组件)

有关示例,请参见:


这会更简单,但这不是我要做的

公平地说,我错过了说:

…使用其他字体、样式或颜色


这需要一个样式化的文档,如
JEditorPane
JTextPane

是的,它需要以这种方式呈现。我不反对使用JTextPane或JEditorPane,只要它的行为像一个JTextField(一行,没有滚动条)。有趣的技巧@trashgod,也许通过用这个unicode字符替换回车,并将其转换回来,它可以提供一个可接受的解决方法。我将您的部分评论编辑回问题中。我不确定@trashgood是否会在没有
@
的情况下收到注释通知。若要为每个
字符串文本
使用不同的
字体、样式或颜色
,您必须查看
JEditorPane/JTextPane
。虽然你希望如何显示
新行
,但这是一个逻辑领域,你想知道这是一个答案,还是你已经找到了答案?@trashgood我很惊讶我错过了一个机会(现在已更正)在答案中添加一个好的屏幕截图P