JFrame e classes

7 respostas
Hernaneprates

Pessoal, é o seguinte, estou construindo um sistema e tenho uma dúvida.
veja só, tô usando o netbeans, aí para construir uma janela JFrame, vou em novo, JFrame e
o netbeans cria um novo JFrame, até aí tudo ok.
No meu JFrame adiciono varios textfields e buttons. Alguns desses buttons coloquei pra
clamar otros JFrames que criei. Funciona tudo numa boa, o problema é que, para cada, JFrame
que o programa chama, uma nova aba do aplicativo é aberta na barra de tarefa do sistema
opreacional, quando deveria continuar apenas uma. É como se cada classe JFrame que o
programa chama fosse um novo programa a ser aberto.
Como faço para corrigir esse problema?

Quem me responder ficarei imensamente grato!

Obs. Chamo os JFrames como se chamasse uma nova classe e coloco setVisible(true)

7 Respostas

oliversistemas

pra fechar esse no jFrame sem fechar tudo, eu uso o método dispose(); mas pra que esse jFrame não seja aberto como um novo aplicativo, eu num sei responder.

Adelar

Olá Hernaneprates,
o que vc está fazendo é criar uma nova tela a cada vez que clica no botão. Para resolver isto você tem que guardar a referência para o frame após criado e ao invés de fechar a tela usar setVisible(false) no objeto do JFrame para escondê-lo. Quando você quiser reabrir a tela reinicie os campos e use setVisible(true) para mostrá-la novamente.

Att.

Hernaneprates

Brigado amigão, mas é o seguinte, eu de fato quero abrir uma nova tela ao clicar no botão,
acontece que, o que não quero é que um novo aplicativo seja aberto na barra de tarefas
como se um novo programa estivesse sendo aberto, entendeu? ou seja, para qualquer
tela que eu quiser que abra, que seja como um programa só…
Pra eu poder explicar melhor, vou colocar o código de meu projeto pra ver dar uma analisada.

public class CadAluno extends javax.swing.JFrame {

public CadAluno() {
    initComponents();
    setExtendedState(MAXIMIZED_BOTH);
}


@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jMenuBar1 = new javax.swing.JMenuBar();
    jMenu1 = new javax.swing.JMenu();
    jMenuItem1 = new javax.swing.JMenuItem();
    jMenuItem2 = new javax.swing.JMenuItem();
    jMenuItem3 = new javax.swing.JMenuItem();
    jMenuItem4 = new javax.swing.JMenuItem();
    jMenu2 = new javax.swing.JMenu();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("Sistema Escolar");
    setBounds(new java.awt.Rectangle(300, 150, 700, 700));
    setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

    jMenu1.setText("Cadastros");

    jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
    jMenuItem1.setText("Alunos");
    jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jMenuItem1ActionPerformed(evt);
        }
    });
    jMenu1.add(jMenuItem1);

    jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
    jMenuItem2.setText("Professores");
    jMenu1.add(jMenuItem2);

    jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.CTRL_MASK));
    jMenuItem3.setText("Disciplinas");
    jMenu1.add(jMenuItem3);

    jMenuItem4.setText("Usuários");
    jMenu1.add(jMenuItem4);

    jMenuBar1.add(jMenu1);

    jMenu2.setText("Relatórios");
    jMenuBar1.add(jMenu2);

    setJMenuBar(jMenuBar1);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 625, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 413, Short.MAX_VALUE)
    );

    pack();
}// </editor-fold>

//Esse comando chama a outra classe
[color=darkred] private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {

CadastroAluno classe = new CadastroAluno();
classe.setVisible(true);
[color=red] [/color][/color]

// TODO add your handling code here:
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new CadAluno().setVisible(true);

          }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JMenuItem jMenuItem4;
// End of variables declaration

}

ViniGodoy

Oi. Esse é o comportamento padrão do JFrame. Aliás, não só no Java, mas em diversas aplicações.

Se voce não gosta dele, tem como alternativa abrir JDialogs não modais, ou usar o JInternalFrame.

E quando for postar códigos, por favor, use a tag code. Quase não dá para ler desse jeito que vc postou, mesmo com o trecho em vermelho.

Hernaneprates

Vini e todos, brigado pelas dicas.

Ficou mais claro.

Estou feliz por saber que posso aprender e contar com
pessoas do Brasil todo pra ajudar, assim, me sinto em
casa programando em Java.

Obrigado amigos!!!

Espero um ser habilidoso o bastante pra ajudar outras
pessoas no fórum.

Abraços!!!

M

Boa Tarde…

Eu tenho um trabalho de programação e estou com algumas dificuldades…

Tenho que criar uma classe Fraccao que ja esta a funcionar…so que estou com problemas na interface grafica…

por favor ajudem e urgente…

ViniGodoy

msct:
Boa Tarde…

Eu tenho um trabalho de programação e estou com algumas dificuldades…

Tenho que criar uma classe Fraccao que ja esta a funcionar…so que estou com problemas na interface grafica…

por favor ajudem e urgente…

Crie um tópico para sua dúvida.

Aproveite e explique também que problemas são esses.

Criado 21 de julho de 2010
Ultima resposta 26 de jul. de 2010
Respostas 7
Participantes 5