Como chamar outro JFrame a partir de um JFrame?

3 respostas
K

to com um problema pra conseguir chamar um JFrame q contem o JFormattedTextField pois qndo eu vou instanciar a class dentro da principal ele pede pra colocar o thorws ParseException e pra colocar a instancia da class dentro de um try, mas mesmo assim n consigo fazer q a janela se abra!!

alguem pode me ajudar!!!

3 Respostas

eliasn

Posta teu codigo ai que fica mais facil…

K

este e um exemplo da minha pergunta

class principal;

import java.awt.event.<em>;

import java.text.ParseException;

import javax.swing.</em>;

public class TelaPrincipal extends JFrame implements ActionListener{

/**
 * 
 */
private static final long serialVersionUID = 1L;
JMenuBar menuBar;
JMenu novo,busca,ajuda,arquivo;
JMenuItem novoAluno,novoProfessor,novoTurma;
JMenuItem buscaAluno,buscaProfessor,buscaCurso,sair;
JMenuItem sobre;
JButton btNovo;
JPanel painelBotoes;


public TelaPrincipal(){
	
	super("Cadastro v1.0");
	setSize(500,500);
	setVisible(true);
	
	menuBar = new JMenuBar();
	
	
	arquivo= new JMenu("Arquivo");
	arquivo.setMnemonic('A');
	
	novo = new JMenu(" Novo ");
	
	
	novoAluno = new JMenuItem("Aluno");
	novoProfessor = new JMenuItem("Professor");
	novoTurma = new JMenuItem("Turma");
	
	sair = new JMenuItem("Sair");
	sair.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,KeyEvent.ALT_MASK));
	



	novo.add(novoAluno);
	novo.add(novoProfessor);
	novo.add(novoTurma);
	arquivo.add(novo);
	arquivo.add(sair);
	
	menuBar.add(arquivo);
	
	painelBotoes = new JPanel();
	
	painelBotoes.add(btNovo);
	painelBotoes.setBounds(10,50,600,50);
	add(painelBotoes);
	setJMenuBar(menuBar);
	
	novoAluno.addActionListener(this);
	novoProfessor.addActionListener(this);
	novoTurma.addActionListener(this);
	sair.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {
	if(e.getSource() instanceof JMenuItem){
		if(e.getSource()==buscaCurso){
		 try {
			new CadastroTurma();
		} catch (ParseException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		}			
		}
		
}


public static void main(String[] args){
	TelaPrincipal janela = new TelaPrincipal();
	janela.setVisible(true);

	
	
}

}

class a ser chamada

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.text.ParseException;

import javax.swing.*;
import javax.swing.text.MaskFormatter;

public class CadastroTurma extends JFrame implements ActionListener{

JLabel lbCodigo;

JLabel lbNome;
JFormattedTextField tfCodigo;
JTextField tfNome;

JPanel painelCurso;

JButton btSalvar;
JButton btCancelar;

public CadastroTurma() throws ParseException{
	super("Cadastro Turma");
	painelTurma();
	this.setSize(310,130);
	setLocationRelativeTo(null);//coloca a janela no centro da tela
	this.setResizable(false);//impossiblita a maximização
	this.setVisible(true);

	}
public void painelTurma() throws ParseException{
	lbCodigo = new JLabel("Codigo");
	tfCodigo = new JFormattedTextField(new MaskFormatter("###"));
	
	lbNome = new JLabel("Nome");
	tfNome = new JTextField("",50);
	
	lbCodigo.setBounds(5,10,50,20);
	tfCodigo.setBounds(50,10,50,20);
	
	lbNome.setBounds(5,30,50,20);
	tfNome.setBounds(50,30,150,20);
	
	btSalvar = new JButton("Salvar");
	btCancelar = new JButton("Cancelar");
	
	btSalvar.setBounds(140,75,70,20);
	btSalvar.addActionListener(this);
	
	btCancelar.setBounds(215,75,85,20);
	btCancelar.addActionListener(this);
	
	painelCurso = new JPanel();
	
	painelCurso.add(lbCodigo);
	painelCurso.add(tfCodigo);
	painelCurso.add(lbNome);
	painelCurso.add(tfNome);
	
	painelCurso.setLayout( null );	
	add(painelCurso);
	
	painelCurso.add(btSalvar);
	painelCurso.add(btCancelar);
}
	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() instanceof JButton){
		if(e.getSource()==btSalvar){
			System.out.println("Salvando...");
		}else
		if(e.getSource()==btCancelar){
			System.exit(0);
		}
		
		}
}

}

G
//põe isso depois do contrutor

class CloseFrame extends JFrame implements ActionListener {

public void actionPerformed(ActionEvent evt) {

setVisible(false);

}
}

//pra fazer abrir frames novos vc usa isso:

void novoframe(){

CloseFrame f = new CloseFrame();

JPanel painel = new JPanel(new FlowLayout());

JLabel label = new JLabel("  Exemplo");

JLabel label1 = new JLabel("  De como criar novos frames");

JLabel label3 = new JLabel(Por gustavo);

f.setTitle(Exemplo);

f.setSize(230, 150);

f.setLocation(100,100);

painel.add(label1);

painel.add(label3);

painel.add(label);

f.add(painel);

f.setVisible(true);

f.setResizable(false);
}

lembrando, peguei o código do:
http://www.java2s.com/Code/Java/CatalogJava.htm
não consegui achar o código precisamente… mas ta por ai…
xD

Criado 29 de outubro de 2006
Ultima resposta 15 de nov. de 2006
Respostas 3
Participantes 3