JTextPane中第一个字母左侧的意外填充/意外的印刷行为 - java

我通过扩展JTextPane实现了多行标签。构造函数设置各种属性以使其看起来像标签,包括禁用任何边框/将边距设置为0都很好。

环境:

使用jgoodies-looks-2.6.0

  • 设置com.jgoodies.looks.windows.WindowsLookAndFeel L&F(也已与javax.swing.plaf.metal.MetalLookAndFeel测试,同样的问题)
  • Windows 8 x64
  • Java SE 1.7
  • 当我增加字体大小时,第一个字母的左侧有时会有“空白” /在19pt处有〜1px的边距(可能随着字体大小而增加)。至少对于字母B,F和L会发生这种情况,但对于A肯定不会。这是一个示例:

    在左侧,您可以清楚地看到布局看起来很杂乱,标题的左边距有这个怪异的边缘。请注意,带有数字(1861)的第一行是常规JLabel。

    放大确认这一点(粉红色的线用于说明):

    因此,从我可以看到的排版是不正确的。

    可以认为这是挥杆中的错误吗?有办法解决吗?例如。在这种情况下,有没有一种简便且干净的方法(即,不使用paint()-ing)来精确控制摆动中的印刷功能?

    编辑:

    这类似于我的期望:

    与之前相比:

    参考方案

    如果您在此处查看屏幕截图:

    特别是看一下1861年……您会发现1的两侧都有较大的空间。特别是1与8之间以及6与1之间的间隙大于8与6之间的间隙。

    这就是在该特定字体上排列布局的方式。他们清楚地认为1被推得太靠近其周围的字符,因此他们在两侧增加了更多空间。

    您“修复”此问题的选项是有限的。

  • 使用其他字体。
  • 将该行渲染为图像,扫描空白列,将其洗净以保留
  • 内置一些常见字符的手动技巧(即,如果字符串以1开头,则将行左移1个像素)
  • 故意使标题缩进或缩进,以使标题不对齐,从而偏移量不再可见。
  • 1861
        Baked Beans
        dkjfdf skdfjsdlf
    

    Java Swing SearchBox模型 - java

    我需要使用Java Swing的搜索框,如果单击任何建议,当输入字母时它将显示来自数据库的建议,它将执行一些操作。如果有可能在Java swing中,请提供源代码提前致谢 java大神给出的解决方案 您可以使用DefaultComboBoxModel,输出将是这样。Try this在此代码中,您将找到countries数组,因此您需要从数据库中获取此数组。

    Java swing-事件触发后,我可以在选项卡上更改名称吗? - java

    一,代码:tab_textArea_file.addTab(docLabel, null, scrollPane_textArea, null); 因此,情况是我有一个可供用户选择的文件列表。用户单击文件时,将读取文件的内容并将其加载到textArea中。 “ docLabel”(在上面的代码中)是应该更改为所选文件名的字符串,但并非如此。是否可以通过上面的…

    Swing-典型桌面应用程序中的并发 - java

    这可能是一个广泛的问题,但我想知道单用户桌面应用程序通常在何处使用并发。您如何发现理想情况下(在设计阶段)并发问题?附注:从操作系统理论上来说,并发问题通常发生在无法共享资源(例如打印机)的情况下。不过,我仍然对在编程级别上可能发生的情况感到迷惑。 java大神给出的解决方案 Event Dispatch thread与其他逻辑之间的Swing中可能存在线程…

    Swing JButton不会更改onclick的背景颜色 - java

    我希望单击该按钮时它永远不会更改背景颜色,默认情况下该颜色将更改为浅蓝色灰色。这是我的代码JButton b = new JButton(); b.setBackground(SystemColor.control); 我希望按钮在单击时不会改变背景颜色。 参考方案 按钮的绘制取决于LAF。您可以执行以下操作之一:定义您自己的UI委托并将其分配给按钮。 缺点…

    Java:正则表达式模式匹配器是否有大小限制? - java

    我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)