如何在JTextPane中的同一行显示两个DIV?

时间:2014-01-28 00:08:57

标签: java html css swing jtextpane

我很难在JTextPane中的同一水平线上对齐两个div。我可以使用普通的HTML(在我的浏览器中呈现)以多种不同的方式完成它,但是相同的HTML在我的JTextPane中永远不会起作用。为什么呢?

这就是我所拥有的:

JTextPane tp = new JTextPane();
tp.setContentType("text/html");
tp.setText("<html><div style='float:left;border: 2px solid #555;padding:1px 5px;width:70px'>test</div><div style='float:right;border: 2px solid #555;padding:1px 5px;width:70px'>test2</div></html>");


这就是我想要的(浏览器渲染):

Good browser render


这是我得到的(java app render):

Bad java render

1 个答案:

答案 0 :(得分:1)

鉴于@ MadProgrammers关于所使用的HTML规范(旧版本)的评论,我创建了一个使用表格的解决方法。看起来如果你制作3个表格单元格(<td>)并将中间一个空格保留为空,同时为其指定一个任意大的宽度,它会将最右边的单元格推到组件区域的边缘。其他单元格不需要指定宽度,它们仍然会适当拉伸以适合其内容。

代码:

JTextPane tp = new JTextPane();
tp.setContentType("text/html");
tp.setText("<html><table><tr><td><div style='border: 2px solid #555'>test</div></td><td width='999px'></td><td><div style='border: 2px solid #555'>test2</div></td></tr></table></html>");

结果:

html workaround