我有一個JTabbedPane
像在這樣的畫面:調用從一個類的方法在運行時
My Tabbed Pane http://oi43.tinypic.com/2mm7ifk.jpg
我有一個類爲每個標籤(HouseGUI,CSPGUI,VPPGUI,以及許多其他的)。 每一類有一個叫做writeToXML()
我需要調用每一個「類」的writeToXML()
方法在我JTabbedPane
當我按下「全部保存」按鈕的方法。但我真的不知道該怎麼做。你可以幫我嗎?
這是我到目前爲止已經完成:
if (e.getSource() == saveAllButton) {
int totalTabs = tabbedPane.getTabCount();
ArrayList<ArrayList<String>> salvationForAll = new ArrayList<>();
ArrayList<Method> methods = new ArrayList<>();
Method[] array = new Method[50];
for (int i = 0; i < totalTabs; i++) {
try {
String title = tabbedPane.getTitleAt(i);
String tmp = title;
tmp = tmp.replaceAll("\\s", "");
array = Class.forName("tabbedpaneInterfaces."+ tmp +"GUI").getMethods();
} catch (ClassNotFoundException ex) {
Logger.getLogger(AddComponents.class.getName()).log(Level.SEVERE, null, ex);
}
methods = convertToArrayList(array);
int methodSize = methods.size();
for (int j = 0; j < methodSize; j++) {
//TO DO call WriteToXML()
}
}
}
我怎麼能叫我需要的方法,在運行時?
如果使用'writeToXML()'方法創建'interface XMLWriter',那麼讓所有選項卡組件實現該方法會簡單多了。最後,在actionPerformed中,遍歷所有選項卡組件,將它們轉換爲'XMLWriter'並調用'writeToXML()'。但是,所有這些聞起來都像是一個很好的意大利麪代碼,其中邏輯和UI混合在一起,最終導致不可維護的代碼。 –