Usando JInternalFrame

0 respostas
tassilo

Boa tarde!
Estou com um probleminha, sou iniciante na linguagem Java, e estou tentando colocar um janela como principal e a partir da mesma ter as janelas internas,
porém ñ estou conseguindo, fiz separadamente só para visualizar melhor.;

olha só.;
Esta é a minha janela principal

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

/**
 *
 * @author Tassilo
 */
public class JanelaPrincipal extends JFrame implements ActionListener{

    private JButton btninterna;
    private JanelaInterna janelaInterna;
    private JDesktopPane principal;
    private JMenuItem newFrame;

    public JanelaPrincipal(){

        super("Janela Principal");

        btninterna = new JButton("Visualizar Janel Interna");

        setLayout(null);
        btninterna.setBounds(30, 40, 300, 25);

        getContentPane().add (btninterna);

        principal = new JDesktopPane();
        add(principal);
        //principal.add(newFrame);

        newFrame.addActionListener(this);
        btninterna.addActionListener(this);

        setSize(new Dimension(400, 200));
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
    }

    public void actionPerformed(ActionEvent e) {
       if(e.getSource() == btninterna){

           mostrarJanelaInterna();
       }
    }

       private void mostrarJanela(JInternalFrame frame) {
        if (principal.getComponentZOrder(frame) == -1) {
            principal.add(frame);
        }
        frame.setVisible(true);
        frame.pack();

        try {
            frame.setSelected(true);
        } catch (PropertyVetoException ex) {
            Logger.getLogger(JanelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void mostrarJanelaInterna() {
        if (janelaInterna == null) {
            janelaInterna = new JanelaInterna();
        }
        mostrarJanela(janelaInterna);
        }
}

e esta é a janela interna, ou janela filha:

import java.awt.Dimension;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;

/**
 *
 * @author Tassilo
 */
public class JanelaInterna extends JInternalFrame{

    private JLabel lblinterna;

    public JanelaInterna(){

        super();

        lblinterna = new JLabel("ESTA É A JANELA INTERNA");
        
        setLayout(null);
        lblinterna.setBounds(30, 40, 200, 30);

        getContentPane().add (lblinterna);

        setSize(new Dimension(300, 200));
        setClosable(true);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}

se alguém puder me ajudar eu agradeço.;.

Criado 1 de julho de 2010
Respostas 0
Participantes 1