首页 > 解决方案 > Synth 外观用户 XML 如何更改 JTable 和 JTree?

问题描述

我想通过 Synth LookAndFeel xml 配置更改JTable和样式。JTree但是我只发现有一小部分可以通过xml文件配置来实现(eg. high-line, cell-color...)。比如单元格边框、表头之间的分界线、表格选中单元格的背景色等都没有找到可配置的入口。

代码如下:

enter code here

<style id="tableStyle">
    <state>
        <color type="BACKGROUND" value="WHITE"/>
        <color type="FOREGROUND" value="BLACK"/>
        <color value="LIGHT_GRAY" type="TEXT_BACKGROUND"/>
        <color value="BLACK" type="TEXT_FOREGROUND"/>
        <imagePainter method="tableBorder" path="images/textfield.png"
                      sourceInsets="1 1 1 0" paintCenter="false"/>
    </state>
    <object class="javax.swing.plaf.ColorUIResource" id="color">
        <int>255</int>
        <int>0</int>
        <int>0</int>
    </object>
    <property key="Table.gridColor" type="idref" value="color"/>
</style>
<bind style="tableStyle" type="region" key="Table"/>


enter code here

看到这张图片

是否可以通过 XML 配置在图像中实现样式?谢谢。

标签: javaswingsynth

解决方案


Synth L&F 只是构建您自己的 L&F 的原型。但是这里实现了一些基本的东西,比如选择颜色。

    <state value="SELECTED">
        <color type="TEXT_BACKGROUND" value="#00538c" />
        <color type="TEXT_FOREGROUND" value="#ffffff" />
        <color type="FOREGROUND" value="#FFFFFF" />
    </state>    

但我还没有找到如何使用 Synth L&F 更改表格标题的网格颜色

如果您想使用 XML 设置 GUI 样式,您可能需要切换到 JavaFX。另一种可能性是购买基于 Synth L&F 的 Synthetica L&F。它几乎具有您设置 GUI 样式所需的所有功能。但它有一个缺点:您需要大量时间来学习它及其所有功能(当然还有解决它的错误的方法;))。


推荐阅读