如何在JavaSwing中使用双值设置JTextpane中文本的fontsize

如何在JavaSwing中使用双值设置JTextpane中文本的fontsize,java,swing,Java,Swing,您好,我正在尝试构建一个JavaSwing应用程序,用户可以选择在jtextpane中设置所需的文本字体大小。我使用的是“StyleConstants.setFontSize(attr,int);”。这只适用于整数值,但当用户给出双倍值(如8.5)时,上述命令失败,因为它只接受整数值而不接受双倍值。那么我该如何解决这个问题呢?有接受双值的命令吗 提前感谢您可以通过HTML/CSS进行尝试: JTextPane textPane = new JTextPane(); textPane.setCon

您好,我正在尝试构建一个JavaSwing应用程序,用户可以选择在jtextpane中设置所需的文本字体大小。我使用的是“StyleConstants.setFontSize(attr,int);”。这只适用于整数值,但当用户给出双倍值(如8.5)时,上述命令失败,因为它只接受整数值而不接受双倍值。那么我该如何解决这个问题呢?有接受双值的命令吗


提前感谢

您可以通过HTML/CSS进行尝试:

JTextPane textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setText("<span style='font-size: 8.5pt'>Hey there!</span>");
JTextPane textPane=newjtextpane();
setContentType(“text/html”);
textPane.setText(“你好!”;

以下swing组件支持HTML格式:按钮、菜单项、标签、工具提示和选项卡式窗格。要使用格式,必须在文本开头放置标记(可选择在末尾关闭标记)。例如:

<html><font size="8.5pt">Two</font>
2

您只是想
Math.round
双精度整数(或
Math.floor
Math.ceil
)还是真正接受8.5。不知道大小为8.5的字体应该是什么,谢谢您的快速回复。。。我想要8.5的字体大小。它应该与MSWord中的类似。我的意思是,在MSWord中,我们甚至可以指定两个值(6.5,8.5),它在MSWord中运行良好。我希望在我的应用程序中有完全相同的行为。解决这一问题的唯一方法是将double转换为int。不确定结果会是什么,但创建一个整数大小的字体,并使用
font#deriveFont(float size)
,你说的“不起作用”是什么意思。例外,或者说大小8和大小8.5之间没有区别(因为我不确定java字体是否支持非整数大小),我不确定Swing使用的HTML编辑器是否支持
pt
中的字体大小(尽管我没有尝试过),我通常使用
px
。你能确认它工作吗?是的,我能确认Swing HTML渲染器区分pt和px。我个人只会将pt用于打印,但由于@user1815809明确要求8.5(即分数),px似乎没有多大意义……嗨,netzwerg。。很抱歉反应太晚。如果我错了,请纠正我,但如果我遵循上述方法,那么它将用新方法覆盖textpane中的所有内容。我想要的是只修改选定的文本并保持其余内容不变。我的示例演示了如何使用
样式
元素对文本进行格式化。显然,你不应该使用
代码片段,但围绕您自己的文本/选择。