我想通过Synth LookAndFeel xml配置更改JTable
和JTree
的样式。但是我只发现可以通过xml
文件配置来实现一小部分(例如,高线,单元格颜色...)。例如,单元格边框,标题之间的分隔线,表格中所选单元格的背景颜色等都找不到可配置的条目。
代码如下:
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配置在图像中实现样式?谢谢。
答案 0 :(得分:0)
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所需的所有功能。但是它有一个缺点:您需要花费大量时间来学习它及其所有功能(当然还有它的bug的工作区;)。