我的代码中有一段格式化字符串,附加 html/css 标记,然后将文本添加到 JTextPane。我在某些面板的构造函数中创建了 textPane,如下所示:
public PnlSmartCommands(ServerLogFormatter formatter, ServerCommandsComponent container){
setLayout( new java.awt.BorderLayout() );
this.container = container;
txtServerCommands = new JTextPane();
txtServerCommands.setContentType("text/html");
scpServerCommands = new JScrollPane( );
this.formatter = formatter;
scpServerCommands.setViewportView( txtServerCommands );
scpServerCommands.getVerticalScrollBar().setUnitIncrement(16);
scpServerCommands.getHorizontalScrollBar().setUnitIncrement(50);
add( scpServerCommands, java.awt.BorderLayout.CENTER );
txtServerCommands.setEditable(false);
loadRules(txtServerCommands);
我使用格式化函数将文本添加到窗格中,该函数从 ArrayList 获取所有先前的请求,删除所有找到的 HTML 标记,对其进行格式化,然后添加新的 HTML 和 BODY 标记,然后使用 .setText(String arg0) 设置文本到 JTextPane。
public String formatMemoryString(){
StringBuilder sb = new StringBuilder();
sb.append("<html>");
sb.append("<body>");
for(int i=0;i<logMemoryHolder.size(); i++){
sb.append(logMemoryHolder.get(i));
if(!(i==logMemoryHolder.size())){
sb.append("<br>");
}
}
sb.append("</body>");
sb.append("</html>");
return sb.toString();
现在问题来了——响应总是适合多行的盒子,而不是单行。虽然这实际上很好,但我需要添加功能以将其跨越一行。!http://i.stack.imgur.com/zy4yC.jpg - 这就是它目前的样子。我想添加一个复选框,将值格式化为单行,或者允许 textPane 这样做。知道我该怎么做吗?我放入窗格的 HTML 如下:http : //www.upload.ee/files/3501071/testHtml.html.html 提前致谢!