java等待对话框关闭

java等待对话框关闭,java,user-interface,netbeans,Java,User Interface,Netbeans,我有一个小程序,其中一个元素被拖放,当执行拖放时,我打开一个对话框(extendsjframe),其中应该输入一些文本。问题是,我想等待该对话框关闭(实际上是按下ok按钮,以便我可以从文本字段中读取数据),然后分析用户输入的内容,并根据该内容决定是否拒绝或允许删除 public void drop(DropTargetDropEvent e) { try{ //popup Popup p = new Popup();

我有一个小程序,其中一个元素被拖放,当执行拖放时,我打开一个对话框(extendsjframe),其中应该输入一些文本。问题是,我想等待该对话框关闭(实际上是按下ok按钮,以便我可以从文本字段中读取数据),然后分析用户输入的内容,并根据该内容决定是否拒绝或允许删除

public void drop(DropTargetDropEvent e) {
      try{
            //popup

            Popup p = new Popup();
            p.setParmeter("enter a new name: ");
            p.setVisible(true);

            //programm wont wait before the user has pressed ok in the popup 
            System.out.println("value: " + p.getValue());

            repaint();

        } else {
            e.rejectDrop();
        }
}

我希望你能明白。弹出窗口是从JFrame扩展而来的对话框。问题是,p.getValue()是在用户按下ok按钮之前执行的。我尝试使用一个布尔变量和一个循环来检查弹出窗口中是否输入了一些内容,但它不起作用,对话框被取消显示,但没有textfield或ok按钮,所以我唯一能做的就是取消它。我是gui的新手,因此我非常感谢您的帮助。提前谢谢

Java具有内置的对话框支持。你不想扩展JFrame。请参阅有关如何创建对话框的说明。

如果可能,您应该重新实现
弹出窗口
以继承
JDialog
,而不是
JFrame
,并调用
JDialog
setModal(true)
方法,该方法将阻止后续代码运行,直到对话框关闭

或者,查看中的静态便利方法,在许多情况下,这些方法无需实现您自己的定制对话框类。例如(从
JOptionPane
API):

显示一个包含选项yes/no和消息“choose one”的信息面板:


先生,您能告诉我当按下“确定”按钮或“取消”按钮时如何取消对话框吗
JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION);