两个问题:
1.我在程序中new一个对话框,能获取数据并有OK和Cancle两个按钮,并当点击“OK”时得到数据。如何判断“OK”按钮被点击了?
public void initialize(){
      InitialDialog id = new InitialDialog(this);
      //这时将弹出一个模态对话框,按照对话框的提示下在对话框上输入数据
      
   if(){ //如果点击OK按钮 则获取数据 如何实现?
      //获取来自对话框的数据
      
     }
}2.当点击“Cancel”时,如何退出?用this.dispose()可以使非模态对话框退出,但对模态对话框不起作用。
this.setModal(true);
jButtonCancel.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        close();
      }
    });  private void close() {
     //非模态对话框此语句可以退出,但模态对话框不可以,应该怎么办?
    //this.dispose();
  }
}谢谢大家!

解决方案 »

  1.   

    先this.setVisible(false);再this.dispose();或者在主线程里id.dispose();点击的问题,可以在id里新建个变量,保存点击记录
    返回主线程后用id.getxxx获得点击记录
      

  2.   

    谢谢啊!创建非模态对话框和模态对话框在响应“Cancel”按钮上有区别吗?为什么前者调用dispose()可以直接关闭,而后者却关闭不了?
      

  3.   

    我找到方法了:
    1.设置一个在布尔型变量,当点击OK时,将其变量设置为真,在程序其他位置对此布尔型的变量进行判断。
    2.我所谓的“模态对话框”关闭不了,是因为我把this.setVisible(true)写在了语句jButtonCancel.addActionListener(new ActionListener() {}的前面,结果阻塞了后者的执行。但如果是非模态对话框,不会受此影响,把这两句话位置对调一下,用this.dispose()是可以关闭对话框的。谢谢大家!