放弃JDialog中的控制权

San*_*ewy 1 java swing jframe jdialog

我有一个JFrame创建一个无模式的JDialog.在某些情况下(可能总是),我传递给JDialog构造函数,我希望JDialog保持可见但控制返回到调用JFrame.用户随后可以与JDialog交互或关闭.

我研究过,但还没有找到办法做到这一点.任何建议/帮助表示赞赏.

Hov*_*els 5

您是否frame.toFront()在显示对话框后尝试过调用?

例如,

import java.awt.Dialog.ModalityType;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class RelinquishControl {
   public static void main(String[] args) {
      JTextField textField = new JTextField("Fubar", 15);
      textField.selectAll();
      JPanel panel = new JPanel();
      panel.add(textField);
      final JFrame frame = new JFrame("Frame");
      frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
      frame.add(panel);
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);

      textField = new JTextField("Fubar", 15);
      textField.selectAll();
      panel = new JPanel();
      panel.add(textField);
      final JDialog dialog = new JDialog(frame, "Dialog", ModalityType.MODELESS);
      dialog.add(panel);
      dialog.pack();
      int x = frame.getLocation().x + 200;
      int y = frame.getLocation().y + 200;
      dialog.setLocation(x, y);
      dialog.setVisible(true);

      frame.toFront();
   }
}
Run Code Online (Sandbox Code Playgroud)