Java 使用GUI swing JFrame作为其父级创建JDialog?

Java 使用GUI swing JFrame作为其父级创建JDialog?,java,swing,jframe,jdialog,Java,Swing,Jframe,Jdialog,这可能是一个非常愚蠢的问题,但我只是不知道怎么做 我使用SwingGUI创建JFrame。因此,公共类客户机扩展了javax.swing.JFrame 在我的主要方法中: public void run() { new Client().setVisible(true); } 单击按钮时,我要执行以下操作: JDialog d = new JDialog(frame, "Example", true); 除了我不知道“框架”里有什么。我想说客户,但没用。我们应该怎么做才能让JDial

这可能是一个非常愚蠢的问题,但我只是不知道怎么做

我使用SwingGUI创建JFrame。因此,
公共类客户机扩展了javax.swing.JFrame

在我的主要方法中:

public void run() {
    new Client().setVisible(true);
}
单击按钮时,我要执行以下操作:

JDialog d = new JDialog(frame, "Example", true);
除了我不知道“框架”里有什么。我想说客户,但没用。我们应该怎么做才能让JDialog的父对象成为我调用它的框架

单击按钮时,我要执行以下操作:

JDialog d = new JDialog(frame, "Example", true);
您必须已将
ActionListener
添加到按钮。
ActionEvent
将包含您单击的源对象

因此,您可以在
ActionListener
中编写通用代码,以获取按钮的父窗口:

JButton button = (JButton)event.getSource();
Window window = SwingUtilities.windowForComponent( button );
JDialog d = new JDialog(window, "Example", true);
如果定义JDialog d时的“this”变量引用了JFrame,那么应该用“this”替换frame变量。JFrame是JDialog d的所有者,而不是它的父对象。仅在其超类中使用单词“parent”。