2011-11-23 76 views
0

我有一個名爲MainFrame的JFrame,其中幾乎找到了我的應用程序的所有組件。它有一個JTabbedPane和大量的JPanel來對組件進行分組。現在我必須構建一些自定義單元格編輯器或按鈕,這些自定義單元格編輯器或按鈕會影響我的JFrame上的很多組件以及一些幫助器類,這些類需要來自JFrame中許多組件的信息。到目前爲止,我所做的就是將這些組件/組件的值傳遞給輔助類的構造函數或者定製編輯器,這些編輯器有時候有很多組件。我覺得它有什麼問題。就像我從構造函數傳遞了很多值。我正在考慮傳遞MainFrame並獲取其組件。我如何從MainFrame和我需要的特定組件獲取這些組件?或者建議一個更好的方法。獲取特定的JFrame組件來更改它的值

回答

1

您可以創建一個HashMap gui並將所需的任何組件放到該映射中。然後獲取組件需要像gui.get(「myButtonID」);將組件的名稱放在Map中可能是個好主意。

+0

將每個組件放到一個Map中可能有點乏味且容易出錯,特別是如果你有一大組由UI生成的UI代碼就像NetBeans一樣! – GETah

1

你可以得到你所有的框架組件:

Component[] components1=mFrame.getContentPane().getComponents(); 

您可以通過讓主容器的子組件:

// Assuming component is a container 
((Container)component).getComponents(); 

您可以通過獲取組件名稱:

Component.getName(); 
相關問題