使用Java Synth xml文件自定义组件?

时间:2011-04-26 00:02:27

标签: java xml synth

我正在使用自定义UI开发Java应用程序,而我正在使用Java Synth来实现这一目标。目前我正在手动开发xml文件。你认为这是一个很好的方法,或者我应该使用特定的软件吗?

无论如何,我已经成功配置了一些组件,比如列表。我在xml中有关于列表的这段代码:

<style id="listStyle">
    <insets top="1" left="1" right="1" bottom="1"/>
    <state>
        <color value="#323232" type="BACKGROUND"/>
        <color value="WHITE" type="FOREGROUND"/>
        <color value="#00BAFF" type="TEXT_BACKGROUND"/>
        <color value="BLACK" type="TEXT_FOREGROUND"/>
    </state>
</style>    
<bind style="listStyle" type="region" key="LIST"/>

这很好用。接下来,我尝试配置滚动条:

<style id="scrollBarStyle">
    <insets top="2" left="2" right="2" bottom="2"/>
    <state>
      <color value="BLACK" type="BACKGROUND"/>
    </state>
    <state value="MOUSE_OVER">
      <color value="BLUE" type="BACKGROUND"/>
    </state>
</style>
<bind style="scrollBarStyle" type="region" key="SCROLLBARTHUMB"/>

我认为插图工作正常,但当鼠标悬停在滚动条上时,它只是保持黑色。

还有一件奇怪的事情。我有这种“默认样式”,我首先应用于所有地区。滚动条的行为与默认样式(鼠标悬停在其中)的预期方式相同。但是,当我将此特定样式应用于滚动条时,它将停止工作。应用此特定样式后,默认区域样式也将停止工作。因此滚动条保持黑色......

你有什么想法吗?

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

我也是一个新手,但我的猜测是与州的价值有关。如果未指定状态值(即MOUSE_OVER),则它将成为默认值。只有在没有其他状态值的情况下激活其他值时,才会使用其他值。例如,如果您指定了被鼠标悬停的按钮的值,然后按下按钮的值,则按下按钮的值将永远不会被使用,因为无论何时按下该按钮,显然它也被鼠标悬停。我会检查这样的事情是否会导致问题。我还发现一个线程,其中有人有类似的问题,但它是由实际的java代码,而不是xml引起的。 http://forums.oracle.com/forums/thread.jspa?threadID=2225033&tstart=75

祝你好运:对不起,我无法提供更多帮助