在JTextArea中实现更智能的文本换行

Cli*_*ton 4 java user-interface swing

上下文

目前,我有一个像这样创建的JTextArea:

JTextArea descArea = new JTextArea();
descArea.setFont(style.getFont());
descArea.setLineWrap(true);
descArea.setName("descArea");
descArea.setToolTipText(resourceMap.getString("descArea.toolTipText"));
descArea.setText(model.getName());
JScrollPane descPane = new JScrollPane(descArea,
            JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
Run Code Online (Sandbox Code Playgroud)

当用户在字段中键入内容时,它确实会换行(按照descArea.setLineWrap(true)),但是通过破坏以下示例中的单词会有点笨拙:

替代文字

我们软件的用户希望包装更加巧妙,并自动生成更像:

替代文字

一般的想法是,当他们键入最后一个'th'时,它们一直向下移动到第二行以及插入点,因为它们键入(以类似于几乎所有其他文本编辑器的方式).


问题

我最初的想法是使用Key Listener手动实现这种包装,但我想知道是否有更好的方法/不同的组件可以更容易地实现这个功能?

Jes*_*Jes 7

它已经实施.

  textArea.setWrapStyleWord(true);
Run Code Online (Sandbox Code Playgroud)