所以我剛剛開始使用Netbeans GUI編輯器,並且我有一個需要在多個幀之間切換的程序,用於組項目中的組織目的我希望每個幀都是一個完全獨立的班級。我需要將哪些代碼放入按鈕以在幀之間切換?僅此而已,我發現的是:連接兩個JFrames並在它們之間傳遞信息
new jFrame1().dispose();
new jFrame2().setVisible(true);
但是,我不能從一個JFrame
傳遞到另一個信息。
所以我剛剛開始使用Netbeans GUI編輯器,並且我有一個需要在多個幀之間切換的程序,用於組項目中的組織目的我希望每個幀都是一個完全獨立的班級。我需要將哪些代碼放入按鈕以在幀之間切換?僅此而已,我發現的是:連接兩個JFrames並在它們之間傳遞信息
new jFrame1().dispose();
new jFrame2().setVisible(true);
但是,我不能從一個JFrame
傳遞到另一個信息。
要在它們之間傳遞信息,可以使用Observer模式。 或使用另一個類,並在其上創建靜態字段。
看看MVC(模型視圖控制器)模式。你有一個模型,一個簡單的Pojo,它包含在GUI上顯示(查看)的數據。您可以將模型從一個框架傳遞到另一個框架。
只是一個想法:
從一幀傳遞模式到另一個,你可以使用多例,模式創建保存控制器註冊表。每個控制器都有控制器負責的模型。因此,在每個JFrames的
,你會做這樣的事情:
ControllerRegistry.getController("ControllerName").getModel()
得到模型。
控制器看起來是這樣的:那麼
@Controller(name = "ControllerName")
class MyController {
private MyModel model;
public MyModel getModel(){...};
}
的ControllerRegistry會去找有註釋控制器上的類路徑的所有類。然後它會嘗試從註釋中找到帶有名稱的CoOntroller。 ControllerRegistry.getController() - 方法將是靜態的,這樣你就可以在沒有實例的情況下在任何地方訪問它。註冊表還可以緩存已知的控制器,以防止在每次調用getController()時搜索它。
請參閱[使用多個JFrames,好/壞實踐?](http://stackoverflow.com/a/9554657/418556)這聽起來好像其中一個框架應該是模式化的'JDialog'。 –
使用面板而不是框架。 –