繁体   English   中英

如何从其JPanel内容更改JDialog图标?

[英]How to change JDialog icon from its JPanel content?

我有一个JDialogJPanel


...
MyPanel panel = new MyPanel();
JDialog dialog = new JDialog();
dialog.add(panel);
dialog.show();
...

public class MyPanel extends javax.swing.JPanel {
    ....
}

打开MyPanel类后,如何更改对话框的图标?

我的代码:

...    
initComponents();

1. ((JFrame)((JDialog)this.getParent()).getOwner()).setIconImage(img);

2. Window win = SwingUtilities.getWindowAncestor(this);
   win.setIcon(img);

两者都返回NullPointerException

它返回null,因为您是从面板的构造函数中调用这些方法的。 并且在构造面板时,尚未将其添加到对话框中。

可以从外部设置图标:

MyPanel panel = new MyPanel();
JDialog dialog = new JDialog();
dialog.add(panel);
dialog.setIconImage(...);
dialog.show();

或将AncestorListener添加到要使其可见的面板上,然后通过listener方法设置图标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM