Principal.java
Código:
Interno1.javaimport javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Principal extends JFrame { // Variables de Instancia private int x; JDesktopPane escritorio = new JDesktopPane(); JButton abrir = new JButton ("Abrir"); //Constructor de la clase principal public Principal() { super("Calculador de Raspawn"); this.setSize(800, 600); setResizable(false); setLayout(null); Dimension pantalla, cuadro; pantalla = Toolkit.getDefaultToolkit().getScreenSize(); cuadro = this.getSize(); this.setLocation(((pantalla.width - cuadro.width) / 2), (pantalla.height - cuadro.height) / 2); setLayout(null); setContentPane(escritorio); abrir.setBounds(10, 10, 100, 20); add(abrir); abrir.addActionListener (new ActionListener() { public void actionPerformed (ActionEvent evt) { creaventana(); } } ); } /*Creación de la clase para crear la ventana interna*/ public void creaventana (){ Interno1 in = new Interno1 (); //if(in.isVisible()==false){ in.setVisible(true); System.out.println(in.isEnabled()ntana); escritorio.add(in); try { in.setSelected(true); } catch(Exception e) { } abrir.setEnabled(false); repaint(); //if(in.isShowing()==false){ // abrir.setEnabled(true); // repaint(); //} //} } public static void main (String [] args) { Principal p = new Principal (); p.setVisible(true); p.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } } ); } }
Código:
No solo puede ser esta via, si alguien tiene otra sugerencia de como manejar el asunto, por ejemplo, si la ventana interna esta abierta, pero no activa, solo con colocarla activa, ambas mi sirven. import javax.swing.*; import java.awt.event.*; import java.awt.*; public class Interno1 extends JInternalFrame { // Variables de Instacia //static int ventanas; static int posicionX = 30, posicionY=30; /** * Constructor para Objetos */ public Interno1() { super("Ventana 1", true, //Resizable true, //Cerrar true, //Maximizar /minimizar true //Minimizar en pantalla ); setSize(200,200); setLocation(posicionX + 30, posicionY +30); JTextField texto = new JTextField(); texto.setSize(20, 40); add(texto); System.out.println(isEnabled()); //setEnabled(true); } }