【问题标题】:How can I Change the default Icon of a JPanel based swing app (or window)如何更改基于 JPanel 的摇摆应用程序(或窗口)的默认图标
【发布时间】:2011-05-27 10:36:53
【问题描述】:

当它是JFrame 时,我已经看到了很多关于这个问题的答案,但对于JPanel 却没有,而且我尝试过的所有方法都没有奏效。

所以基本上我已经编写了这个扩展JPanel 的简单类/应用程序,并且一切正常。现在我想更改默认图标。

有什么想法吗?

【问题讨论】:

  • 如果面板没有嵌入到窗口(JFrame、JDialog、JWindow)中,则无法使其可见。你到底想做什么?
  • 一个JPanel只是一个容器,没有窗口,所以它周围必须有一个JFrame、JDialog或JApplet。
  • 好的,感谢您的指正。我没有注意到 JFrame,现在我注意到了。我试图投票关闭它,但对话框给了我多个选择,它们都与我的情况无关,尽管有人选择了“不是一个真正的问题”..

标签: java swing icons


【解决方案1】:

正如大家在 cmets 中所说的,请重新考虑您要做什么。 更改图标的唯一选项是将其设置为面板是子框架的框架,因为图标是框架的一部分/属于框架。

如果您希望将图标设置为面板的功能,则在 addNotify() 方法中,当组件接收到父级时调用该方法,查看面板的父级及其父级,依此类推,直到您到达框架并为其设置图标。

如果面板是其内容窗格,则示例显示了您必须通过才能到达框架的多个父级。

        JPanel p = new JPanel();
        JFrame f = new JFrame();
        f.setContentPane(p);
        System.out.println(SwingUtilities.windowForComponent(p));

【讨论】:

  • 好的,现在想出了这个,还有一个有 JFrame 的类,谢谢!
  • 使用 SwingUtilities.windowForComponent(...) 获取框架,而不是 getParent() 方法。
  • @camickr 我不知道它的存在。学习到教训了。干杯。:)
猜你喜欢
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
相关资源
最近更新 更多