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

标签 java netbeans

我试过了

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 不会被第二个接口(interface)修改,并且,如果我将其设置为仅由“ok” boolean 值中断的循环,则带有设置接口(interface)的窗口不会打开。这是一个非常深入的问题,但我是 Netbeans 新手,我在 Google 上找不到它。感谢您的关注

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

最佳答案

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

如果您循环,框架不会显示的原因是您位于 Swing 调度线程上(因为您位于响应鼠标单击的例程中),并且在它返回之前,它不会继续更新屏幕。

在知道对话框已设置值之前,您不能仅调用“框架对话框”上的方法来获取值。我会将调用类作为构造函数的参数传递给对话框,然后让对话框代码在完成后调用调用类上的方法。如果您需要知道这种情况何时发生,那么您必须将其视为调用类中的事件;如果不了解您总体上想要做什么,我无法猜测您需要什么。

如果您需要等到对话框完成,并且不需要用户在完成之前能够执行任何操作,那么您想要的是“模式”对话框,我建议查看 JOptionPane 和它有各种对话框选项来满足您想要执行的操作。那么来自您的类的调用可以是同步的,即您可以调用对话框,当调用完成时,对话框就全部完成了。然后您不需要将调用类传递给框架,因为它不需要通知您它已完成;当您的调用完成时,您就知道它已经完成,并且您可以调用一个方法(例如您已经完成的方法)来获取您想要的值。

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

rc

关于java - 如何打开新的jFrame对话框并返回主界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9843308/

相关文章:

java - 如何在 Netbeans 中自动缩进?

java - Jetty 将 HTTP 重定向到 HTTPS 在 IDE 外部失败

java - 如何用文本字段中给出的另一个单词替换所选单词?

java - Http Get 请求使用 HttpClient 4.5

java - Android FileNotFoundException 即使文件可用且设置了权限

java - c :forEach vs ui:repeat (a. k.a 冰:面板系列)

java - 是否有Java库可以通过编程方式删除.mp3音频文件的一部分?

java - 在 Java 中的 SQl 脚本中执行 While

java - JSF 添加到列表中的 selectOneMenu<School>

java - Netbeans IDE 项目窗口不可见