簡體   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