我正在開發一個基于 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貢獻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));
}
添加回答
舉報
0/150
提交
取消