繁体   English   中英

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

[英]How to open new jFrame dialogue and return to main interface?

我试过这个

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的新手,我在Google上找不到它。 感谢您的关注

打印屏幕: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. 如何在对话框中使用模态

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM