亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用JFrame作為自定義輸入框

使用JFrame作為自定義輸入框

子衿沉夜 2023-08-16 10:12:28
我正在開發一個基于 java swing 的應用程序,其中有兩個JFrames: A,它是主窗口,以及B,它被調用A。我需要做的是, in A, call B,從中獲取用戶輸入B并將該輸入傳遞給A某種方式,然后處理它我嘗試過的一切都失敗了,據我所知Java不支持async/await這是我最好的嘗試    public void getInfoFromB()    {        FormB b = new FormB();        while(b.isReady() == false){            a.setVisible(false);        }        a.setVisible(true);        ArrayList<String> b.getData();        //...    }請注意,objects extendsa和isReady 都是返回用戶已填寫所需所有數據的天氣方法,而 getData 方法返回所述數據bJFrameFormB這種嘗試似乎不起作用,因為一旦代碼進入 while 循環,其他所有內容都會凍結,因為 java 似乎很難處理并行操作
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

您只需使用 aJOptionPane來提示輸入。

主框架將等到選項窗格關閉才能獲取用戶輸入的文本。

查看完整回答
反對 回復 2023-08-16
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

可以通過引用將 A 傳遞到 B (顯然所有對象都是通過引用傳遞的,因此不需要使用指針)。從那里,我可以操縱來自 A 和 B 的數據


A級


public void getDataFromB(ArrayList<String> data)

{

    this.dataFromB = data;

}


public void startFormB()

{

    this.setVisible(false);

    B formB = new B(this);

}

B級


//constructor

public B(formA a)

{

    this.mainForm = a;


    //...

}



public void setDataToAAndExit()

{

    this.mainForm.getDataFromB(this.dataToA);

    //re-show main window

    this.mainForm.setVisible(true);

    //close this window

    this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));

}


查看完整回答
反對 回復 2023-08-16
  • 2 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號