Dúvida Swing - JInternalFrame

2 respostas
P

Bom dia galera.

Eis minha dúvida…

Em minha aplicação Desktop tenho uma tela principal(JFrame) com menus e tals…
clicando nesses menus vou abrir sub-telas(JInternalFrame)…até aí tudo beleza! Minha dúvida é…se tem como toda vez que eu abrir uma nova sub-tela essa sub-tela fique na frente da que já estava aberta.

Outra coisa…não quero permitir que uma sub-tela que já esteja aberta eu consiga abrir outra mesma sub-tela (por exemplo) estou com a sub-tela Cadastro de Cliente aberta e clicar no menu “Cadastro de Cliente” de novo não quero que abra outra tela do Cadastro de Cliente, sendo que esta já está aberta.

Obrigado.

2 Respostas

S

Olá amigo

no form principal:

package comap;

import java.beans.PropertyChangeListener;
import java.sql.SQLException;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.AbstractAction;
import javax.swing.JFrame;


public class FramePrincipal extends JFrame implements ActionListener{

    private MDIDesktopPane desktop = new MDIDesktopPane();
    static FramePatrimonio framePatrimonio;
    static FrameBaixas frameBaixas;

.
.
.

    public void acaoBotoes(ActionEvent e) {
        if ("patrimonio".equals(e.getActionCommand())) { //new
            try {
                //new
                createFramePatrimonio();
            } catch (Exception ex) {
                Logger.getLogger(FramePrincipal.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        if ("baixas".equals(e.getActionCommand())) { //new
            try {
                //new
                createFrameBaixas();
            } catch (Exception ex) {
                Logger.getLogger(FramePrincipal.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        if ("sair".equals(e.getActionCommand())) { //new
            int i = JOptionPane.showOptionDialog(null, "Tem certeza que deseja sair?", "Sair do Sistema", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, JOptionPane.NO_OPTION);
            if (i == JOptionPane.YES_OPTION) {
                quit();
            }
        }

    }



    protected void createFramePatrimonio() throws PropertyVetoException, Exception {
        menu = menuBar;
        if (framePatrimonio == null) {
            framePatrimonio = new FramePatrimonio(this.dbConnection);
            framePatrimonio.setVisible(true); //necessary as of 1.3
            desktop.add(framePatrimonio);
            framePatrimonio.pack();
            desktop.getDesktopManager().maximizeFrame(framePatrimonio);
        } else {
            framePatrimonio.setVisible(true);
        }
        try {
            framePatrimonio.setSelected(true);
        } catch (java.beans.PropertyVetoException e) {
        }
        
    }

no internalframe:

public void FecharForm() throws Exception {
     if (bd.ConexaoBancoDados.getInstance().conexao() != null) {
         bd.ConexaoBancoDados.getInstance().conexao().close();
     }
     this.dispose();
     FramePrincipal.framePatrimonio = null;
 }

Dê uma olhada neste link:

http://oswing.sourceforge.net/tutorial.html

já tem um monte de funcionalidades prontas.

Silvio Guedes

P

vlw Silvio :wink:

Criado 23 de fevereiro de 2010
Ultima resposta 23 de fev. de 2010
Respostas 2
Participantes 2