如何在JColorChooser中添加具有GTK外观的透明度滑块

时间:2015-01-13 16:23:35

标签: java swing java-7 look-and-feel jcolorchooser

在Java7之前,如果您想让用户选择透明色,您必须显示JColorChooser并添加自己的透明度滑块,因为标准颜色选择器没有透明度/不透明度的UI。

从Java7开始,标准JColorChooser似乎包含这样的滑块,因此我删除了自己的透明度滑块。但是,使用GTK +外观时JColorChooser缺少此滑块/ UI小部件。

有没有人知道将透明度滑块添加到GTK +外观JColorChooser的简单方法(例如我必须设置的系统属性,UI管理器中的键值对,......)?

this related question恐怕这种财产不存在。否则它可能已被用于禁用/删除透明度滑块。

屏幕截图来说明您在Metal下所拥有的内容与您在GTK下获得的内容:

金属外观

Metal look and feel

GTK +外观

GTK look and feel

用于生成屏幕截图的代码

代码当然必须使用JDK7或更高版本

运行
import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.JColorChooser;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class ColorChooserExample {
  public static void main(String[] args) {
    EventQueue.invokeLater(
        new Runnable() {
          @Override
          public void run() {
            try {
              UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
//              UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
              JColorChooser.showDialog(null, "Pick color", Color.YELLOW );
            } catch (ClassNotFoundException e) {
              throw new RuntimeException(e);
            } catch (InstantiationException e) {
              throw new RuntimeException(e);
            } catch (IllegalAccessException e) {
              throw new RuntimeException(e);
            } catch (UnsupportedLookAndFeelException e) {
              throw new RuntimeException(e);
            }
          }
        }
    );
  }
}

0 个答案:

没有答案