如何打开新的jFrame对话框并返回主界面



我试过这个

private void botaoConfIOMouseClicked(java.awt.event.MouseEvent evt) {                                         
ConfigurarIO popup = new ConfigurarIO();
popup.setVisible(true);
botaoConfIO.setEnabled(false); //this line to avoid multiple dialogues
setIO=popup.getConfig();  //i need to get this boolean from the dialogue "ConfigurarIO"
//part of the program only to make my logic from the setIO 
if(setIO[0]==false){
    jToggleButton1.setEnabled(false);
    jToggleButton1.setText("Saída");
}
else{
    jToggleButton1.setEnabled(true);
    if(jToggleButton1.isSelected()) jToggleButton1.setText("Pino 1 ON");
    else jToggleButton1.setText("Pino 1 OFF");

}}

这是对话

public class ConfigurarIO extends javax.swing.JFrame {
boolean[] inOut=new boolean[8];
boolean ok=false;
/** Creates new form ConfigurarIO */
public ConfigurarIO() {
    initComponents();
}
public boolean[] getConfig(){
    return inOut;
}
public boolean getOK(){
    return ok;
}
public void setOK(){
    ok=false;
}
//the logic was emited
private void botaoOKMouseClicked(java.awt.event.MouseEvent evt) {                                     
dispose();
ok=true;
System.out.println(ok);
}    

问题是setIO没有被第二个接口修改,如果我将其设置为只通过"ok"布尔值来打破循环,则具有设置接口的窗口不会打开。这是一个非常探索的问题,但我是Netbeans的新手,在谷歌上找不到它。感谢的关注

打印屏幕:http://4.bp.blogspot.com/-B7VWmPelJek/T2ysJV8PJcI/AAAAAAAABqQ/0waWxxEEHkw/s320/temp.png

您还没有说明是否出于某种原因需要一个框架,或者对话框是否可以,或者它是否需要模态。

如果你循环,框架不会显示的原因是你在Swing调度线程上(因为你在一个响应鼠标点击的例程中),在它返回之前,它不会更新屏幕。

在知道对话框已经设置了值之前,不能只调用"框架对话框"上的方法来获取值。我会将我的调用类作为构造函数上的参数传递给对话框,然后让对话框代码在调用类上调用一个方法。如果你需要知道这是什么时候发生的,那么你必须把它当作你的调用类中的一个事件;我猜不出你需要什么,而不知道你要做什么。

如果你需要等到对话框完成,并且在对话框完成之前不需要用户做任何事情,那么你想要的是一个"模式"对话框,我建议你查看JOptionPane及其各种对话框选项来了解你想要做的事情。然后,来自类的调用可以是同步的,也就是说,你可以调用对话框,当调用完成时,对话框就全部完成了。然后,您不需要将调用类传递给框架,因为它不需要通知您已经完成;当您的调用完成时,您就知道它已经完成了,并且您可以调用一个方法,比如您已经完成的方法,以获得您想要的值。

顺便说一句,JFrame构造函数的子类不调用super();我建议你这样做。。。

rc

// we will make this modal=true, to block access to the parent frame
public class ConfigurarIO extends javax.swing.JDialog {

有关更多详细信息,请参阅:

  1. 如何制作对话框
  2. 如何在对话中使用情态

最新更新