JInternalFrame Não Abre Depois de Fechados

1 resposta
Resplandes

Boa Noite Pessoal Estou com um problema de gerenciamento de JInternalFrames no meu jDesktopPane
eu tenho a instância dele mas ao fecha-lo ele nao abre novamente já busquei aqui no forum mas está complicado
como faço esse gerenciamento para ver se ele ja esta fechando
ou aberto ao fechar setar o valor null a ele agradeço desde agora amigos.

1 Resposta

C
eu n conheço esses dois components JInternalFrames e jDesktopPane, mas se for igual ao JFrame, quando for fechado e pretende-se reabri utilize setVisible(false) ou HIDE_ON_CLOSE ao inves de DISPOSE_ON_CLOSE, para reabri-los setVisible(true). exemplo:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MainClass extends JPanel {

  public MainClass() {

    JButton btn1 = new JButton("Button1");
    add(btn1);

  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.getContentPane().add(new MainClass());

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//JFrame.HIDE_ON_CLOSE ou JFrame.DISPOSE_ON_CLOSE
    frame.addWindowListener(new FrameListener());
    
    frame.setSize(200, 200);
    frame.setVisible(true);
  }

No caso do JFrame e JDialog, tem o metodo addWindowsListener(...) para acoes de janela como abrir, fechar, mudar o tamanho, ... exemplo

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MainClass extends JPanel {

  public MainClass() {

    JButton btn1 = new JButton("Button1");
    add(btn1);

  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.getContentPane().add(new MainClass());
    frame.addWindowListener(new FrameListener());
    
    frame.setSize(200, 200);
    frame.setVisible(true);
  }
}
class FrameListener extends WindowAdapter
{
   public void windowClosing(WindowEvent e)
  {
    System.exit(0);//frame.setVisible(false); caso deseje reabri-lo ou frame.dispose(); caso deseje fechar para sembre e nao finalizar a aplicação
  }
}

fonte: http://www.java2s.com/Code/JavaAPI/javax.swing/JFrameaddWindowListenerWindowListenerlis.htm

Criado 2 de outubro de 2011
Ultima resposta 2 de out. de 2011
Respostas 1
Participantes 2