Exemplo de JInternalFrame

Segue um exemplo, com alguma adaptação, que postei há um tempo no GUJ. Trata-se de um exemplo de como usar o JInternalFrame.

Por ser uma dica rápida, não vou entrar em detalhes sobre os componentes em questão, isso pode ser encontrado em diversos lugares em maiores detalhes, incluindo o site da própria documentação do Swing. No final há alguns links de referência.

Espero que seja útil.


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

public class Principal extends JFrame{

    private JDesktopPane desktopPane;
    private JMenuItem menuItem1, menuItem2;
    private JMenuBar menuBar;
    private JMenu menu;
    private InternalFrameUm frameUm;
    private InternalFrameDois frameDois;

    public Principal(){

        super("Exemplo de JDesktopPane");

        int inset = 50;

        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds(inset, inset,
                   screenSize.width  - inset*2,
                  screenSize.height - inset*2);

        desktopPane = new JDesktopPane();
        menuItem1 = new JMenuItem("InternalFrameUm");
        menuItem1.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent evt){

                if(frameUm == null){
                    frameUm = new InternalFrameUm();
                    frameUm.setVisible(true);
                    desktopPane.add(frameUm);
                }
                else if(!frameUm.isVisible()){
                    frameUm.setVisible(true);
                    desktopPane.add(frameUm);
                }
            }
        });

        menuItem2 = new JMenuItem("InternalFrameDois");
        menuItem2.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent evt){

                if(frameDois == null){
                    frameDois = new InternalFrameDois();
                    frameDois.setVisible(true);
                    desktopPane.add(frameDois);
                }
                else if(!frameDois.isVisible()){
                    frameDois.setVisible(true);
                    desktopPane.add(frameDois);
                }
            }
        });

        menuBar = new JMenuBar();
        menu = new JMenu("Opções");

        setContentPane(desktopPane);

        menu.add(menuItem1);
        menu.add(menuItem2);

        menuBar.add(menu);

        setJMenuBar(menuBar);

        setVisible(true);
        setResizable(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String args[]){

        Principal p = new Principal();
    }

}

Nos JPanel criados abaixo, apenas coloquei uma cor de fundo, para exemplificar. O importante aqui é mostrar como fixar os JPanel ao JInternalFrame. Nesses JPanel poderiam ser colocados diversos outros componentes de tela, como botões, campos de entrada, etc…


import javax.swing.JInternalFrame;
import java.awt.event.*;
import java.awt.*;
import javax.swing.JPanel;

public class InternalFrameUm extends JInternalFrame {  

    public InternalFrameUm() {
        super("Internal Frame Um",
              true, //resizable
               true, //closable
              true, //maximizable
               true);//iconifiable  

         setSize(300,300);  

         setSize(300,300);  

        JPanel panel = new JPanel();
         panel.setBackground(Color.GREEN);  

         Container container = getContentPane();
         container.add(panel);
     }
 }


import javax.swing.JInternalFrame;
import java.awt.event.*;
import java.awt.*;
import javax.swing.JPanel;

public class InternalFrameDois extends JInternalFrame {  

     public InternalFrameDois() {
         super("Internal Frame Um",
               true, //resizable
               true, //closable
                true, //maximizable
               true);//iconifiable  

         setSize(300,300);  

        JPanel panel = new JPanel();
         panel.setBackground(Color.YELLOW);  

         Container container = getContentPane();
         container.add(panel);

     }
}

É isto!

Procurei criar um exemplo bem simples, que vá direto ao ponto.

Qualquer dúvida ou sugestão ou crítica é bem vinda!

Até o próximo post!

Referências:

http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html

4 comentários sobre “Exemplo de JInternalFrame

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s