Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们能模仿GTK吗;Java Swing中的2.0按钮样式?_Java_Swing_Jbutton_Look And Feel_Gtk2 - Fatal编程技术网

我们能模仿GTK吗;Java Swing中的2.0按钮样式?

我们能模仿GTK吗;Java Swing中的2.0按钮样式?,java,swing,jbutton,look-and-feel,gtk2,Java,Swing,Jbutton,Look And Feel,Gtk2,Java Swing的问题是外观和感觉(金属、Nimbus、GTK…),与SWT、Windows、Mac和Gnome工具包相比,这是最糟糕的,获得好看的小部件是乌托邦主义,但我还是要问这个问题 我需要知道是否有可能将JButton调整为默认GTK按钮。 否则,我们能给JButton文本一个样式(例如阴影)吗 以下是GTK应用于按钮小部件的样式: style "button" { xthickness = 3 ythickness = 3 bg[NORMAL] = sha

Java Swing的问题是外观和感觉(金属、Nimbus、GTK…),与SWT、Windows、Mac和Gnome工具包相比,这是最糟糕的,获得好看的小部件是乌托邦主义,但我还是要问这个问题

我需要知道是否有可能将JButton调整为默认GTK按钮。 否则,我们能给JButton文本一个样式(例如阴影)吗

以下是GTK应用于按钮小部件的样式:

style "button" {
    xthickness = 3
    ythickness = 3

    bg[NORMAL] = shade (1.07, "#cdcdcd")
    bg[PRELIGHT] = shade (1.09, "#cdcdcd")
    bg[ACTIVE] = shade (1.0, "#cdcdcd")
    bg[INSENSITIVE] = mix (0.25, @bg_color, "#e2e1e1")
    fg[INSENSITIVE] = "#9c9c9c"

    engine "murrine" {
        #contrast = 1.0
        border_shades = {1.04, 0.82}
        reliefstyle = 5
        shadow_shades = {1.02, 1.1}
        textstyle = 1
        glowstyle = 5
        glow_shade = 1.1
        #text_shade = 1.04
    }
这是使用Java引擎提供的默认GTK外观时按钮的外观:

下面是Linux(GTK2.0)下按钮的外观

区别实际上是Java GTK LAF中的错误文本暗示,而GTK按钮文本的样式是离散阴影。

有两种方法

  • 但是正确的方法(不要重新发明轮子)使用正确的

  • 可能的情景

  • 下载源代码

  • 将所有类导入IDE(2-15分钟取决于PC硬件)

  • 搜索文件夹
    test
    ,有
    Check.java

  • 运行它并尝试
    JMenu Look and Feel
    中的所有内容,从
    JMenu

  • 没有比这更好的了,所有标准和良好的定制Swing外观和感觉都集中在一个
    JFrame

  • 也许更好的方法是将Substance与SwingX结合使用,这是一个非常好的自定义Swing实现,同样也没有更好的方法

  • 注意:SwingX需要的不仅仅是基本的Swing知识,Substance(我的视图)也需要在原始代码中更新和自定义一些方法


是的。。。如果您准备花费数百/数千工时重新实施LAF,我相信这在理论上是可能的。对一个乌托邦人来说应该没问题:-)@StephenC:)这就是我害怕的。谢谢你的回复。我将尝试使用图形重新绘制文本标签,至少模拟我们可以从HTML文本阴影功能中获得的内容。
style "button" {
    xthickness = 3
    ythickness = 3

    bg[NORMAL] = shade (1.07, "#cdcdcd")
    bg[PRELIGHT] = shade (1.09, "#cdcdcd")
    bg[ACTIVE] = shade (1.0, "#cdcdcd")
    bg[INSENSITIVE] = mix (0.25, @bg_color, "#e2e1e1")
    fg[INSENSITIVE] = "#9c9c9c"

    engine "murrine" {
        #contrast = 1.0
        border_shades = {1.04, 0.82}
        reliefstyle = 5
        shadow_shades = {1.02, 1.1}
        textstyle = 1
        glowstyle = 5
        glow_shade = 1.1
        #text_shade = 1.04
    }