我有一个 JDialog
和 JPanel
...
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 添加到面板,以便在面板可见时进行通知,并通过监听器方法设置图标。
关于java - 如何从其 JPanel 内容更改 JDialog 图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17813514/