ventanas sintaxis propiedades manejo ejemplo caracteristicas java swing jframe jdialog

java - sintaxis - El servidor de diálogo muere



propiedades de jdialog en java (1)

Tengo un comportamiento extraño con el método JOptionPane.showInputDialog (...) (y otros métodos de JJOptionPane). Los diálogos creados nunca parecen morir. Cuando llamo a Window.getWindows () después de que el diálogo ha desaparecido, ¡la cantidad de ventanas ha aumentado!

Pruebe este programa y verá lo que quiero decir:

public static void main(String[] args) { final JFrame frame = new JFrame(); final JPanel panel = new JPanel(); final JButton button = new JButton("Show Dialog"); panel.add(button); frame.add(panel); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { JOptionPane.showInputDialog(frame, "Enter some text : "); System.out.println(Window.getWindows().length); } }); frame.setSize(400, 400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }

¿Alguien puede explicar lo que está sucediendo?


Alguien entiende lo que sucede?

Window.getWindows() devuelve siempre todos los contenedores de nivel superior que se crean (sin contenedores devuelve !isDisplayable ) en la current JVM , estos contenedores nunca se han ido de la JVM memory , ni tienen GC''ed , porque se han GC''ed como recursos del Native OS , más aquí