Problema no codigo - Chamar outra classe - Tela em JPanel

4 respostas
S

Dae galera so novo aqui no Forum, leio sempre os artigos tudo mais. agora to com um problema que nem lendo estou conseguindo resolver.

Esse é a A Tela Principal, onde estou com problema de chamar as outras telas, onde o problema para mim que não achei uma solução.

package br.com.caelum.jdbc.Pagina;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import br.com.caelum.jdbc.principal.contato.TestaInclusao;
public class MyPanel extends JPanel{
    private JButton jcomp1;
    private JButton jcomp2;
    private JButton jcomp3;
    private JButton jcomp4;
    private JTextField edtResp;
    public MyPanel() {       
        jcomp1 = new JButton ("Inclusao");
        jcomp2 = new JButton ("Excluir");
        jcomp3 = new JButton ("Alterar");
        jcomp4 = new JButton ("Listagem");
        edtResp = new JTextField ("resultado");      
        edtResp.setEnabled (false);
        setPreferredSize (new Dimension (667, 371));
        setLayout (null);
        add (jcomp1);
        add (jcomp2);
        add (jcomp3);
        add (jcomp4);
        add (edtResp);       
        jcomp1.setBounds (25, 35, 100, 20);
        jcomp2.setBounds (190, 35, 100, 20);
        jcomp3.setBounds (370, 35, 100, 20);
        jcomp4.setBounds (545, 35, 100, 20);
        edtResp.setBounds (15, 65, 635, 295);       
        jcomp1.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
            	            	
            	/**Meu problema, não consigo chamar a outra tela*/.

            }
        });    
       
    }

    public static void main (String[] args) {
        JFrame frame = new JFrame ("MyPanel");
        frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add (new MyPanel());
        frame.pack();
        frame.setVisible (true);        
        
    }   
}

Está é a segunda tela, onde deveria ser chamada no codigo acima.
E também problema de quando nestá tela clico em "Voltar", deveria voltar para a tela a cima.

package br.com.caelum.jdbc.principal.contato;

import javax.swing.JOptionPane;
import br.com.caelum.jdbc.dao.ContatoDao;
import br.com.caelum.jdbc.modelo.ContatoVo;
import java.awt.*;
import java.awt.event.*;
public class TestaInclusao extends JPanel {
	
    private JButton jcomp1;
    private JButton jcomp2;
    private JButton jcomp3;
    private JButton jcomp4;
    private JButton jcomp5;
    private JTextArea jcomp6;
    private JTextArea jcomp7;
    private JTextArea jcomp8;
    private JTextArea jcomp9;
    private JTextArea jcomp10;
    private JButton jcomp11;
    private JTextArea jcomp12;
    private JButton jcomp13;
    public TestaInclusao() {    	       
        jcomp1 = new JButton ("Inicio");
        jcomp2 = new JButton ("Nome");
        jcomp3 = new JButton ("CPF");
        jcomp4 = new JButton ("Teste");
        jcomp5 = new JButton ("tt");
        jcomp6 = new JTextArea (5, 5);
        jcomp7 = new JTextArea (5, 5);
        jcomp8 = new JTextArea (5, 5);
        jcomp9 = new JTextArea (5, 5);
        jcomp10 = new JTextArea (5, 5);
        jcomp11 = new JButton ("Incluir");
        jcomp12 = new JTextArea (5, 5);
        jcomp13 = new JButton ("Voltar");
        jcomp1.setEnabled (false);
        jcomp2.setEnabled (false);
        jcomp3.setEnabled (false);
        jcomp4.setEnabled (false);
        jcomp5.setEnabled (false);
        jcomp12.setEnabled (false);
        setPreferredSize (new Dimension (667, 371));
        setLayout (null);
        add (jcomp1);
        add (jcomp2);
        add (jcomp3);
        add (jcomp4);
        add (jcomp5);
        add (jcomp6);
        add (jcomp7);
        add (jcomp8);
        add (jcomp9);
        add (jcomp10);
        add (jcomp11);
        add (jcomp12);
        add (jcomp13);
        jcomp1.setBounds (25, 35, 100, 20);
        jcomp2.setBounds (25, 80, 100, 20);
        jcomp3.setBounds (25, 125, 100, 20);
        jcomp4.setBounds (25, 170, 100, 20);
        jcomp5.setBounds (25, 215, 100, 20);
        jcomp6.setBounds (180, 35, 140, 20);
        jcomp7.setBounds (175, 80, 145, 20);
        jcomp8.setBounds (175, 125, 155, 20);
        jcomp9.setBounds (175, 170, 130, 20);
        jcomp10.setBounds (175, 215, 155, 20);
        jcomp11.setBounds (405, 210, 100, 25);
        jcomp12.setBounds (25, 260, 610, 95);
        jcomp13.setBounds (530, 210, 100, 25);          
        jcomp13.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {      

                           /**Aqui é onde queria a opção de voltar para a tela anterior.*/				
		  				
            }           
        });    	 
    }

    public static void montarTela (String[] args) {    	
    	JFrame frame = new JFrame ("MyPanel");
        frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add (new TestaInclusao());
        frame.pack();
        frame.setVisible (true);           	
    }    
}

Obrigado a todo que derem uma mão!

4 Respostas

rafaelviny

1- ja respondi topicos assim umas 3 vezes
2 - quando vc chamou a segunda tela, deixe a primeira invisivel, quando clicar no voltar da um setVisible(true)

S

você diz assim na primeira tela?

jcomp1.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
            	            	
            	TestaInclusao incluir = new TestaInclusao();
            	incluir.montarTela(null);
            }
        });

E na segunda tela?

jcomp13.addActionListener(new ActionListener() {

           public void actionPerformed(ActionEvent e) {             
            	MyPanel inicial = new MyPanel();
		inicial.main(null);				
		new TestaInclusao().setVisible(false);					  				
           }            
            
    });

Se for assim? Não deu certo, ele chama a tela 2 a tela “Incluir”, mais na hora de voltar está chamando a tela 1 “Principal”, e deixa aberto as 2 telas anteriores.

rafaelviny

na primeira tela vc tem que adicionar a um JDesktopPanel o seu internalFrame

S

Deu certo agora! Valeu

Criado 4 de maio de 2011
Ultima resposta 6 de mai. de 2011
Respostas 4
Participantes 2