Duvida JFrame

30/08/2007

1

galera é o seguinte possuo um JFrame principal em minha aplicação, tenho um Jmenu e neste menu tem lah ´cadastro´, bom quando clicar em ´cadastro ele cria um outro JFrame com a tela de ´cadastro´, para esta tela eu testei tanto com o JFrame quanto com um JDialog, eu gostei mais do JDialog pq no momento que vc abre, a aplicação trava as janelas e vc soh fica focado na janela que foi aberta, não podendo voltar a tela do principal, apenas se vc fechar o JDialog assim liberando para voltar no principal.

ja o Jframe quando vc abre a janela de cadastro, vc pode ficar alterando entre as janelas.

bom gostaria de saber se é possivel travar as janelas e colocar uma em focus, igual o que o JDialog faz, mas utilizando um Jframe???

se vcs testarem entederam do que eu estou falando, atravez de um Jrame chamem outras 2 janelas 1 Jframe e 1 JDialog, vcs veram a diferença ao tentar voltar para a janela principal.

Valeu!!


Responder

Posts

27/03/2008

Lscheid

Amigo, boa tarde.

Execute este exemplo, veja se a minha solução serve para você.

Um abraço,
Lucas


import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class TesteFrames extends JFrame {

private static final long serialVersionUID = 1L;

private JButton botaoCadastro = new JButton("Cadastro");

private TelaCadastro telaDeCadastro = null;

public TesteFrames() {

setTitle("Tela Principal do Sistema");
setSize(300, 300);
setResizable(false);

// centraliza frame
setLocationRelativeTo(null);

Container container = getContentPane();
container.setLayout(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

botaoCadastro.setBounds(100, 100, 100, 25);
botaoCadastro.addActionListener(new TrataCliqueBotao());

container.add(botaoCadastro);

}

class TrataCliqueBotao implements ActionListener {

public void actionPerformed(ActionEvent arg0) {

if (telaDeCadastro == null) {

telaDeCadastro = new TelaCadastro();
telaDeCadastro.setVisible(true);
botaoCadastro.setEnabled(false);

}

}

}

class TelaCadastro extends JFrame implements WindowListener {

private static final long serialVersionUID = 1L;

public TelaCadastro() {

setTitle("Cadastro");
setSize(200, 200);
setResizable(false);

// centraliza frame
setLocationRelativeTo(null);

this.addWindowListener(this);

}

public void windowOpened(WindowEvent arg0) {

}

public void windowClosing(WindowEvent arg0) {

telaDeCadastro.dispose();
telaDeCadastro = null;
botaoCadastro.setEnabled(true);

}

public void windowClosed(WindowEvent arg0) {

}

public void windowIconified(WindowEvent arg0) {

}

public void windowDeiconified(WindowEvent arg0) {

}

public void windowActivated(WindowEvent arg0) {

}

public void windowDeactivated(WindowEvent arg0) {

}

}

public static void main(String[] args) {

TesteFrames tf = new TesteFrames();
tf.setVisible(true);

}

}



Responder