Java JCheckBox:多行文本的垂直对齐

Java JCheckBox:多行文本的垂直对齐,java,swing,vertical-alignment,jcheckbox,Java,Swing,Vertical Alignment,Jcheckbox,在使用JCheckBox自定义字体时,我在Java(swing)中遇到了一个轻微的视觉问题。我有一个JCheckBox,文本跨越多行。使用默认字体时,它看起来很好。但是,当我使用自定义字体(从.ttf文件动态导入)时,垂直对齐似乎有点偏移,使其看起来很难看。复选框附带的文本应略高于其显示值 有没有办法调整复选框及其文本标签的垂直位置?当我使用此代码对齐顶部的复选框时会发生这种情况:checkbox.setVerticalTextPosition(SwingConstants.top) 每个平台指

在使用JCheckBox自定义字体时,我在Java(swing)中遇到了一个轻微的视觉问题。我有一个JCheckBox,文本跨越多行。使用默认字体时,它看起来很好。但是,当我使用自定义字体(从.ttf文件动态导入)时,垂直对齐似乎有点偏移,使其看起来很难看。复选框附带的文本应略高于其显示值

有没有办法调整复选框及其文本标签的垂直位置?当我使用此代码对齐顶部的复选框时会发生这种情况:
checkbox.setVerticalTextPosition(SwingConstants.top)


每个平台指定用于定义的逻辑族的物理字体。这些字体具有定义良好的指标,已知这些指标与主机平台兼容。使用奇数字体会让你任由字体设计师和平台字体提示的实现摆布。相反,在构建GUI之前,请使用
UIManager
导出所需的大小和样式,如图所示。

默认字体有什么问题?尺寸?抛风格有铭文吗?@垃圾神大小+样式,我想。我只想用不同的字体。我的UI的其余部分也使用这种字体。感谢您的回复。我使用的字体是Roboto,这是一种相当常见的字体,所以我认为它应该可以与swing配合使用。我试着按照你说的做,但这似乎只是改变了字体的大小/样式-问题仍然存在。对,问题在于平台如何使用从主机操作系统获得的度量来应用字体。除了样式和大小之外,您还可以应用
仿射转换格式
。感谢您让我了解仿射转换格式-我尝试对字体应用转换以偏移其位置。不管出于什么原因,除了复选框的标签,它似乎对我程序中的所有文本都有效。不管怎么说,我找到了一个解决方案——我使用了一个复选框和一个单独的复选框,无论出于什么原因,它似乎更适合这种字体;很高兴你把它整理好了。如果使用单独的标签,请查看
JLabel#setLabelFor()