2013-12-11 65 views
0

所以我剛剛開始使用Netbeans GUI編輯器,並且我有一個需要在多個幀之間切換的程序,用於組項目中的組織目的我希望每個幀都是一個完全獨立的班級。我需要將哪些代碼放入按鈕以在幀之間切換?僅此而已,我發現的是:連接兩個JFrames並在它們之間傳遞信息

new jFrame1().dispose(); 
new jFrame2().setVisible(true); 

但是,我不能從一個JFrame傳遞到另一個信息。

+3

請參閱[使用多個JFrames,好/壞實踐?](http://stackoverflow.com/a/9554657/418556)這聽起來好像其中一個框架應該是模式化的'JDialog'。 –

+0

使用面板而不是框架。 –

回答

0

要在它們之間傳遞信息,可以使用Observer模式。 或使用另一個類,並在其上創建靜態字段。

0

看看MVC(模型視圖控制器)模式。你有一個模型,一個簡單的Pojo,它包含在GUI上顯示(查看)的數據。您可以將模型從一個框架傳遞到另一個框架。

只是一個想法:

從一幀傳遞模式到另一個,你可以使用多例,模式創建保存控制器註冊表。每個控制器都有控制器負責的模型。因此,在每個JFrames的

,你會做這樣的事情:

ControllerRegistry.getController("ControllerName").getModel() 

得到模型。
控制器看起來是這樣的:那麼

@Controller(name = "ControllerName") 
class MyController { 
    private MyModel model; 

    public MyModel getModel(){...}; 
} 

的ControllerRegistry會去找有註釋控制器上的類路徑的所有類。然後它會嘗試從註釋中找到帶有名稱的CoOntroller。 ControllerRegistry.getController() - 方法將是靜態的,這樣你就可以在沒有實例的情況下在任何地方訪問它。註冊表還可以緩存已知的控制器,以防止在每次調用getController()時搜索它。

相關問題