Erro no gui

gente mais uma ajudo por favor
não estou conseguindo fazer uma outra gui JFrame sem o metodo main pois quero chama-lo pelo metodo principal atravéz de um evento.

package Novagui;

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

public class Cadastro {

final JFrame frame1 = new JFrame("Cadastro");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setSize(300,300);

}

Esse trecho:

frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setVisible(true); frame1.setSize(300,300);

Deve ficar dentro de um método. E no evento você chama o método.

Por exemplo:

[code]import javax.swing.JFrame;

public class Cadastro {
final JFrame frame1 = new JFrame(“Cadastro”);

public void montaFrame1(){
	frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame1.setVisible(true);
	frame1.setSize(300,300);
}

}
[/code]

E no main:

[code]public class TestaCadastro {
public static void main (String[] args){
JButton botao = new JButton(“abrir frame1”);

	JFrame frame = new JFrame("Principal");
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setSize(200,200);
	frame.add(botao);
	frame.setVisible(true);
	
	botao.addActionListener(new ActionListener() {
		
		@Override
		public void actionPerformed(ActionEvent arg0) {
			Cadastro cadastro = new Cadastro();
			cadastro.montaFrame1();
		}
	});
	 
     }

}[/code]

O mais usual é utilizar a chamada ao construtor.
Nele é possível inserir a chamada a um método que faça as vezes de instanciar e criar a GUI ou mesmo a própria ação.