Manipulando jInternalFrame!

1 resposta
blima10

Galera … estou com problema ao manipular internal frames em paralelo…
meu maior problema é reabrir um internal frame … coloquei o método de acesso pelo menubar com um item de menu! o acesso ocorre normal, porém quando tento reabrir não acontece nada! o q devo fazer ???

utilizei o desktop pane e tudo conforme o livro do deitel

1 Resposta

G

Cara é bem simples, ta aqui o código, to meio sem tempo pra comentar, mas tá bem tranquilo de entender, a função que que faz o JInternal Frame ficar escondido é setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

package testeJinternalFame;

import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.*;

public class Menu extends JFrame implements ActionListener {

    private JMenuBar jmPrincipal = new JMenuBar();
    private JMenu jmCadastro = new JMenu("Cadastros");
    private JMenuItem jmCadCliente = new JMenuItem("Cliente");
    private JMenuItem jmCadFornecedor = new JMenuItem("Fornecedor");
    public JDesktopPane jdPane = new JDesktopPane();
    Tela telaCadCliente, telaCadFornecedor, telaCadProduto;

    public static void main(String args[]) {
        Menu menu = new Menu();

    }

    public Menu() {
        getContentPane().add(jdPane);
        jmPrincipal.add(jmCadastro);
        jmCadastro.add(jmCadCliente);
        jmCadastro.add(jmCadFornecedor);
        setJMenuBar(jmPrincipal);
        jmCadCliente.addActionListener(this);
        jmCadFornecedor.addActionListener(this);
        setSize(800, 600);
        setVisible(true);
        inializaObjetos();
    }

    public void actionPerformed(ActionEvent evt) {

        if (evt.getSource() == jmCadCliente) {
            telaCadCliente.show();            
            jdPane.moveToFront(telaCadCliente);
        }

        if (evt.getSource() == jmCadFornecedor) {
            telaCadFornecedor.show();


            jdPane.moveToFront(telaCadFornecedor);
        }
    }

    public void inializaObjetos() {
        telaCadCliente = new Tela("Cadastro de Cliente", this);
        telaCadFornecedor = new Tela("Cadastro de Fornecedor", this);
        telaCadCliente.hide();
        telaCadFornecedor.hide();
    }
}

class Tela extends JInternalFrame {

    private Menu telaPrincipal;

    public Tela(String titulo, Menu telaPrincipal) {
        super(titulo, true, true, true, true);

     setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

        setSize(300, 200);
        setVisible(true);
        this.hide();

        this.telaPrincipal = telaPrincipal;
        telaPrincipal.jdPane.add(this);
    }
}
Criado 14 de março de 2009
Ultima resposta 15 de jul. de 2009
Respostas 1
Participantes 2