首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JOptionPane忽略在UIDefaults中指定的OptionPaneUI

JOptionPane忽略在UIDefaults中指定的OptionPaneUI
EN

Stack Overflow用户
提问于 2016-04-23 06:50:06
回答 1查看 60关注 0票数 0

我想用我自己的OptionPaneUI覆盖BasicOptionPaneUI。然而,我创建的JOptionPanes仍然被BasicOptionPaneUI绘制。

下面是我的自定义外观中的initClassDefaults-Method:

代码语言:javascript
复制
@Override
protected void initClassDefaults(UIDefaults table) {

  super.initClassDefaults(table);
  final String packageName = "my.own.plaf.ui.";

  System.out.println(table.get("OptionPaneUI"));

  Object[] uiDefaults = {
    "ButtonUI", packageName + "MyButtonUI",
    "OptionPaneUI", packageName + "MyOptionPaneUI",
  };
  table.putDefaults(uiDefaults);

  System.out.println(table.get("OptionPaneUI"));
}

我的主要方法是:

代码语言:javascript
复制
public static void main(String[] args) {

  try {
    UIManager.setLookAndFeel(new MyOwnLookAndFeel());
  } catch (UnsupportedLookAndFeelException e) {
    e.printStackTrace();
  }

  JOptionPane optionPane = new JOptionPane();
  System.out.println("My UIClassID is: " + optionPane.getUIClassID());
  System.out.println("Current implementation: " + optionPane.getUI().getClass().getSimpleName());
  JOptionPane.showMessageDialog(null, "Ping");

}

我得到的输出是

代码语言:javascript
复制
javax.swing.plaf.basic.BasicOptionPaneUI
my.own.plaf.ui.MyOptionPaneUI
My UIClassID is: OptionPaneUI
Current implementation: BasicOptionPaneUI

还有一个给我的UI添加颜色的选项窗格。我对MyButtonUI的定义与它的定义相同,它的作用就像一个护身符。

我忽略了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-04-25 04:16:35

事实证明,我忽略的事情是覆盖createUI()-Method,以便它返回一个新的MyOptionPaneUI.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36804480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档