2012-04-18 75 views
-2

我正在將我的GUI插入我的底層代碼[讓我們稱之爲模型],它完成所有的實際操作。幾個類共享另一個類的實例

我已經創建了一個框架類[我們稱之爲框架],其中有三個面板[這些嵌套在框架內的類。

我想讓所有的GUI控件一起工作&作用於模型的一個實例,所以我創建了&在框架中實例化模型。

但是,當我嘗試從面板調用Model實例的操作時,我得到NullPointerExceptions。我不確定設計中是否存在固有的錯誤,或者是我的代碼。我想知道我所說的設計是否可行,還是有更好的方法?

對不起,如果這似乎是一個愚蠢的問題,&在此先感謝。

+4

代碼在哪裏? – Torious 2012-04-18 13:47:24

+0

如果你不用代碼解釋|輸出到底是什麼,我們將嘗試猜測,這對任何人都沒有幫助 – Dan 2012-04-18 13:48:08

+0

我正要添加代碼,但最終會在沒有太多上下文的情況下成爲它的一面牆,所以我認爲這會更容易嘗試&解釋問題。 – gideonparanoid 2012-04-18 14:05:28

回答

1

壞主意.. 一個好主意將是創建單獨的面板類,並在實例化時傳遞它們的框架對象。

喜歡的東西 如果JPANEL1是一個JPanel類,把它定義爲

public class JPanel1 extends JPanel{ 
      private Frame parent; 
      public JPanel1(Frame parent){ 
       this.parent=parent; 
       initComponents(); 
      }... 

框架類中,實例化面板的對象作爲 JPanel1 jPane1=new jPane(this);

這將工作.. 我剛工作在一個框架處理大約15個面板的應用程序上......這是一個很好的設計。

0

好的,我已經解決了這個問題 - 它比我的設計更像我的代碼(儘管感謝那些想法)。我可能應該發佈我的代碼,但不希望人們必須篩選五百行以上的代碼,其中大部分代碼都與上下文無關。

原來我將模型作爲一個變量放置在我的面板之一中,所以每次嘗試調用方法時,都不會在Frame中實例化的Model上調用它,而是在面板。

來自業餘程序員的業餘錯誤。

相關問題