Problema com AWT e Swing

Eu quero fazer com que ao usuário clicar em um ítem do menu, seja colocado o início de um formulário na tela. Mas eu clico no ítem do menu e nada acontece. O que está errado?
O código é este …

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

public class Frame extends JFrame
{
    private JTextField texto1;
    private JLabel label1;
    private JLabel label;
    
    public Frame()
    {
        super("Cadastro de usuário");
        Object label;
        setLayout( new FlowLayout() );

        JMenuBar barra = new JMenuBar();
        setJMenuBar(barra);
        JMenu opcao1 = new JMenu("Arquivo");
        JMenu novo = new JMenu("Novo Cadastro");
        JMenu editar = new JMenu("Editar Cadastro Corrente");
        barra.add(opcao1);
        opcao1.add(novo);
        opcao1.add(editar);
        
        Acao acao = new Acao();
        novo.addActionListener(acao);

        new ActionListener()
        {
            public void actionPerformed(ActionEvent event)
            {
                label1 = new JLabel("Nome");
                add(label1);
                texto1 = new JTextField(10);
                add(texto1);
            }
        };
    }
}

Pelo que eu vi o seu codigo ta um pouco estranho, por exemplo, vc esta definindo :

JMenuBar barra = new JMenuBar();
setJMenuBar(barra);
JMenu opcao1 = new JMenu ("Arquivo");
JMenu novo = new JMenu("Novo Cadastro");
JMenu editar = new JMenu("Editar Cadastro Corrente");

e adicionou o novo e editar no opcao1, ate ai tudo bem mas vc nao adicionou nenhum JMenuItem pra eles. Eu modifiquei o essa parte pra :

JMenuBar barra = new JMenuBar();
setJMenuBar(barra);
JMenu opcao1 = new JMenu ("Arquivo");
JMenuItem novo = new JMenuItem("Novo Cadastro");
JMenuItem editar = new JMenuItem("Editar Cadastro Corrente");

Depois pelo que eu entendi vc queria clicar no menu e abrir um outro formulario nao eh? Eu acho melhor vc criar os outros JFrames em arquivos separados, por exemplo :

novo.addActionListener(new ActionListener() {
	public void actionPerformed(ActionEvent e) {
			new FormNovoCadastro();
	}			
});
        
editar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			new FormEditarCadastro();
		}			
});

Aqui eu adicionei um listener pra cada JMenuItem do seu JMenu, e cada um deles chama uma classe que define um JFrame.

Bom, ai vai o seu codigo inteiro modificado :

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

public class teste extends JFrame {

    private JLabel label1;
    
    public teste()
    {
        super("Cadastro de usuário");
        
        setLayout( new FlowLayout() );

        JMenuBar barra = new JMenuBar();
        setJMenuBar(barra);
        JMenu opcao1 = new JMenu ("Arquivo");
        JMenuItem novo = new JMenuItem("Novo Cadastro");
        JMenuItem editar = new JMenuItem("Editar Cadastro Corrente");
        
        barra.add(opcao1);
        opcao1.add(novo);
        opcao1.add(editar);
        
        label1 = new JLabel();
        
        novo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
                                label1.setText("Novo Cadastro");
				// new FormNovoCadastro();
			}			
		});
        
        editar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
                                label1.setText("Editar Cadastro");
				// new FormEditarCadastro();
			}			
		});
        
        add(label1);
        
        pack();
        setVisible(true);        
        
    }
    
    public static void main(String[] args) {
    	new teste();    	
    }
    
}

Eu coloquei um Label e estou alterando o text deles nos listeners so pra vc ver as acoes acontencendo, mas eu coloquei a chamada pros outros JFrames comentados tb pra vc ver onde coloca-los.

Espero ter ajudado.

//Daniel

Obrigado Daniel, era isso mesmo que e queria. :lol: