Hola a todos, tengo una consulta con respecto a como puedo mejorar algo que tengo implementado. Mi aplicación tiene un jsplitpane que divide la ventana en dos partes, una con un arbol y otra con jpanels que se cargan en función de la opción del arbol.
Los métodos a los que llamo en los panales son los mismos, solo que cada uno realiza una operación diferente y cada panel tiene sus elementos diferentes. ¿Hay alguna forma de que esto se pueda generalizar para no tener que implementar en el listener la acción a cada panel (que empiezo a tener ya muchos). No se si se puede hacer con interfaces, no lo tengo claro.
Os pongo un trozo del código que refleja mi pregunta:
private void addListenerArbol() {
jTree1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
public void valueChanged(javax.swing.event.TreeSelectionEvent e) {
//Se fueza la actualización del jtree
jTree1.firePropertyChange(JTree.ROOT_VISIBLE_PROPE RTY, !jTree1.isRootVisible(), jTree1.isRootVisible());
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
jTree1.getLastSelectedPathComponent();
if (node.getParent() == null) {
jSplitPane1.setRightComponent(jPanel1);
return;
}
Object nodeInfo = node.getUserObject();
if (node.getParent().toString().equals("Menu 1")) {
if (nodeInfo.toString().equals("Gestion")) {
pGestion = (pGestion != null) ? pGestion : new Panel_Gestion(principal);
pGestion.reiniciaTabla();
jSplitPane1.setRightComponent(pGestion);
} else if (nodeInfo.toString().equals("Control")) {
pControl = (pControl != null) ? pControl : new Panel_Control(principal);
pControl.reiniciaTabla();
jSplitPane1.setRightComponent(pControl);
}
...