Hola como respuesta a un comentario en esta entrada (por fin alguien comenta en el blog xD) . veremos (justo lo que solicitan e indica el titulo de la entrada)
Crearemos 3 Clases.(LafMain.java, JIF.java, JIF2.java)
el codigo de JIF2.java no lo escribo porque es un JinternalFrame vacio :D
Si necesitan o quieren ver como crear un menú pueden entrar acá o acá :D
la clase principal:
Listo, un JFrame bastante sencillo, con una barra de menú en la parte superior y en el centro un JDesktopPane (tipo statico debido que el método que lo retorna es estatico).
ahora crearemos JInternalFrame que llamara a otro JInternalFrame (el diseño con la ayuda del IDE NetBeans) y el listener del boton.
la clase en cuestion:
Crearemos 3 Clases.(LafMain.java, JIF.java, JIF2.java)
el codigo de JIF2.java no lo escribo porque es un JinternalFrame vacio :D
Si necesitan o quieren ver como crear un menú pueden entrar acá o acá :D
la clase principal:
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.HashMap; import javax.swing.JDesktopPane; import javax.swing.JInternalFrame; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.UIManager; /** * * @author McCubo */ public class LaFMain extends javax.swing.JFrame { private JMenuBar menu = new JMenuBar(); private JMenu action = new JMenu("Action"); private JMenuItem actionItem = new JMenuItem("perform Action"); private static JDesktopPane jDesktopPane = new JDesktopPane(); private static McLaFNimbus mcLaFNimbus; public LaFMain() { initComponents(); setVisible(true); } private void initComponents() { setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(600, 400); setLayout(new BorderLayout()); actionItem.addActionListener(getListener()); action.add(actionItem); menu.add(action); getContentPane().add(menu, BorderLayout.NORTH); getContentPane().add(jDesktopPane, BorderLayout.CENTER); } private ActionListener getListener() { return new ActionListener() { public void actionPerformed(ActionEvent e) { JIF jIF = new JIF(); jIF.setVisible(true); jDesktopPane.add(jIF); } }; } public static JDesktopPane getjDesktopPane() { return jDesktopPane; } public static void main(String[] args) { new LaFMain(); } } class validador { public static HashMap<String, JInternalFrame> jIframes = new HashMap<String, JInternalFrame>(); public static void addJIframe(String key, JInternalFrame jiframe) { jIframes.put(key, jiframe); } public static JInternalFrame getJInternalFrame(String key) { return jIframes.get(key); } }
Listo, un JFrame bastante sencillo, con una barra de menú en la parte superior y en el centro un JDesktopPane (tipo statico debido que el método que lo retorna es estatico).
ahora crearemos JInternalFrame que llamara a otro JInternalFrame (el diseño con la ayuda del IDE NetBeans) y el listener del boton.
la clase en cuestion:
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JInternalFrame; /** * * @author McCubo */ public class JIF extends javax.swing.JInternalFrame { /** Creates new form JIF */ public JIF() { setTitle("TITULO"); initComponents(); jButton1.addActionListener(getButtonActionListener()); } private ActionListener getButtonActionListener(){ return new ActionListener(){ public void actionPerformed(ActionEvent e) { JInternalFrame ji = validador.getJInternalFrame(JIF2.class.getName()); if(ji == null || ji.isClosed()){ ji = new JIF2(); LaFMain.getjDesktopPane().add(ji); validador.addJIframe(JIF2.class.getName(), ji); } ji.setVisible(true); } }; } /*Codigo del diseño Generado por Netbeans*/
excelente es algo que me ayudara mucho..!!! pero me pregunto si me podrías dejar la carpeta del proyecto
ResponderEliminar