Abrir tela pela opção do menu

1 resposta
M

Pessoal tenho duas classes menu e agenda e quero abrir a tela agenda pela opção abrir do menu.

coloquei uma ação na opção abrir do menu mas não funciona.

abrir.addActionListener(
		        new ActionListener()
	            {
	            public void actionPerformed(ActionEvent e)
	                {
	                // colocar aqui o código da ação
	            	Agenda ag = new Agenda();
	            	ag.setVisible(true);
	                }
	            } );

estou querendo abrir essa tela:

import javax.swing.*;
import java.awt.*;
import java.text.*;

public class Agenda extends JPanel {
	private JLabel lblNome, lblEmail, lblNascimento, lblFone, lblEndereco;
	private JTextField txtNome, txtEmail, txtFone;
	private JFormattedTextField txtNascimento;
	private JTextArea txtEndereco;
	private Format dateFormater;

	public Agenda() {
		lblNome = new JLabel("Nome");
		lblEmail = new JLabel("Email");
		lblNascimento = new JLabel("Nascimento");
		lblFone = new JLabel("Fone");
		lblEndereco = new JLabel("Endereco");
		txtNome = new JTextField(40);
		txtEmail = new JTextField(35);
		txtFone = new JTextField(15);
		txtEndereco = new JTextArea("", 3, 35);
		// cria-se o elemento de entrada formatada usando um formato pre-definido
		// atraves da java.text.SimpleDateFormat
		dateFormater = new SimpleDateFormat("dd/MM/yyyy");
		txtNascimento = new JFormattedTextField( dateFormater );
		txtNascimento.setColumns( 20 );
	}
	public void init() {
		setLayout( new GridLayout(5,1) );
		FlowLayout esquerda = new FlowLayout( FlowLayout.LEFT );
		// usando Paineis auxiliares do tipo FlowLayout para alinha a esquerda
		// e poder inserir mais um componente por linha do grid
		JPanel auxNome = new JPanel( esquerda );
		auxNome.add( lblNome );
		auxNome.add( txtNome );
		JPanel auxNascimento = new JPanel( esquerda );
		auxNascimento.add( lblNascimento );
		auxNascimento.add( txtNascimento );
		JPanel auxEmail = new JPanel( esquerda );
		auxEmail.add( lblEmail );
		auxEmail.add( txtEmail );
		JPanel auxFone = new JPanel( esquerda );
		auxFone.add( lblFone );
		auxFone.add( txtFone );
		// o JTextArea deve estar sempre de um JScrollPane
		JScrollPane scrollEndereco = new JScrollPane ( txtEndereco,
				JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
		JPanel auxEndereco = new JPanel( esquerda );
		auxEndereco.add( lblEndereco );
		auxEndereco.add( scrollEndereco );


		// adciona as linhas ao grid
		add( auxNome );
		add( auxNascimento );
		add( auxFone );
		add( auxEmail );
		add( auxEndereco );
	}
	public static void main(String arg[]) {
		Agenda agendaPanel = new Agenda();
		agendaPanel.init();
		JFrame frame = new JFrame("AgendaPanel");
		frame.getContentPane().add( agendaPanel );
		frame.pack();
		frame.setVisible( true );
	}
}

O que estou fazendo de errado

Agradeço a ajuda

Marcos

1 Resposta

WendersonLP

Olha na sua class agenta você à crou extendendo JPanel, veja que função main que executa o programa você criou uma JFrame para adicionar essa sua class, e crei que ali sim tenha dado certo e tenha aberto a sua agenda, so que na class agenda você não tem um JFrame e nem o botão onde é chamado essa class você não criou um JFrame,
então cri um JFrame num desses dois lugares que acho que vai dar certo!

Criado 28 de julho de 2009
Ultima resposta 28 de jul. de 2009
Respostas 1
Participantes 2