2

Java Swing 的问题在于外观和感觉(Metal、Nimbus、GTK...),与 SWT、Windows、Mac 和 Gnome Tool Kit 相比,外观和感觉最差,而且获得好看的小部件是乌托邦式的,但我问的是问题虽然。

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

public class myTweakedButton extends JButton {

// Override style attributes here.

}

这是 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 外观时按钮的外观:

Java GTK LAF 按钮

这里是一个按钮在 Linux (GTK 2.0) 下的样子。

GTK 按钮 Linux

区别实际上是 Java GTK LAF 中的不良文本提示,而 GTK 按钮文本的样式带有离散阴影。

4

1 回答 1

2

有两种方法

  • 编写自己的 JButton

  • 但正确的方法(不要重新发明轮子)使用正确的外观和感觉

  • 可能的情况

    1. 转到非实质性

    2. 下载代码源,

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

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

    5. 运行它并尝试其中的所有内容JMenu Look and Feel,每个商品所需的下载 jar 文件Custom Java Swing Look and Feels都可以从JMenu

    6. 没有比这更好的了,所有标准和良好的自定义 Swing 外观和感觉合二为一JFrame

    7. 也许更好的方法是将 Substance 与 SwingX 一起使用,自定义 Swing 的非常好的自定义实现,再没有比这更好的了

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

于 2012-06-06T07:25:14.907 回答