【问题标题】:Can we ape the GTK+ 2.0 button style in Java Swing?我们可以模仿 Java Swing 中的 GTK+ 2.0 按钮样式吗?
【发布时间】:2012-06-10 00:52:22
【问题描述】:

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

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

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

【问题讨论】:

  • 是的...我敢肯定,如果您准备花费数百/数千工时重新实施 LAF,这在理论上是可行的。对于乌托邦来说应该没问题:-)
  • @StephenC :) 这就是我所害怕的。感谢您的回复。

标签: java swing jbutton look-and-feel gtk2


【解决方案1】:

有两种方法

  • write own JButton

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

  • 可能的情况

    1. 转到Insubstantial

    2. 下载代码源,

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

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

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

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

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

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

【讨论】:

  • 谢谢。我将尝试使用 Graphics 重新绘制文本标签,至少可以模拟我们可以从 HTML 文本阴影功能中获得什么。
猜你喜欢
  • 2012-05-04
  • 2013-10-30
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多