我有一个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混合在一起,最终导致不可维护的代码。 –