Как отключить перенос слов в JEditorPane? - PullRequest
2 голосов
/ 22 января 2012

My JEditorPane автоматически переносит слова;Я не хочу этогоВсе, что я хочу, - это горизонтальная полоса, которая позволяет пользователю писать столько, сколько нужно.Как я могу это сделать?Я пробовал несколько методов.Я переопределил getScrollableTracksViewportWidth(), но это не помогло.Кто-нибудь знает, как я могу отключить перенос слов?

Ответы [ 4 ]

5 голосов
/ 22 января 2012

Быстрый поиск в Google привел меня к этой странице , которая реализует его путем создания подкласса текстовой панели и переопределения метода getScrollableTracksViewportWidth():

// Override getScrollableTracksViewportWidth
// to preserve the full width of the text
public boolean getScrollableTracksViewportWidth() {
    Component parent = getParent();
    ComponentUI ui = getUI();

    return parent != null ? (ui.getPreferredSize(this).width <= parent
        .getSize().width) : true;
}
3 голосов
/ 23 января 2012

Попробуйте это http://java -sl.com / wrap.html

2 голосов
/ 29 ноября 2013

Если вы можете контролировать вводимый текст и используете функции JEditorPane, вы можете пометить код с помощью html и использовать пробел: nowrap; свойство стиля.

jEditorPane1.setContentType("text/html");
StringBuilder sb = new StringBuilder();
sb.append("<div style='");
   if (!wordWrap.isSelected()) {  //some checkbox
       sb.append("white-space:nowrap;");
   }
       sb.append("font-family:\"Monospaced\">'");
sb.append("your very interesting long and full of spaces text"); 
/*be aware, more then one space in row will be replaced by single space
  to avoid it you need to substitute by &nbsp;.
  Also rememberer that \n have to be repalced by <br>
  so filering like:
            line = line.replaceAll("\n", "<br>\n"); //be aware, <br/> do not work
            line = line.replaceAll("  ", "&nbsp; ");
            line = line.replaceAll("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
  may be usefull.*/
sb.append("</div>");
jEditorPane1.settext(sb.toString()); //jeditor pane do not support addition/insertion of text in html mode
0 голосов
/ 22 января 2012

почему вы не используете jTextField?

это только одна строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...