Dificuldade com o uso do JTextField

Bom Dia !

Sou novo no fórum e iniciante em java estou tentando
colocar componentes dentro de um Frame, tive sucesso com o JLabel e
com o Jbutton, porém quando eu insiro o JTextField ele apaga tudo e
meu container fica em branco alguem poderia me ajudar ?

Obs: Percebi que quando instancio o JTextField fora do construtor funciona.
Porem quando tendo fazer d forma abaixo da o erro citado acima.
Gostaria de saber porque.

Segue meu código:

[code]package gui;

import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class NovaJanela extends JFrame {

private JButton bt1;
private JButton bt2;    
private JLabel lb1;
private JTextField tf1;// quando faço JTextField tf1 = new TextField (10); funciona !!   

Container container = new Container();

public NovaJanela (){

   super ("Cadastro");           
   container=this.getContentPane();
   container.setLayout(new FlowLayout());
   this.setVisible(true);
   this.setSize(640, 480);    
   
   
   bt1 = new JButton("bt1");
   bt2 = new JButton("bt2");       
  lb1 = new JLabel ("Nome");      
  tf1=new JTextField (10);
   
   container.add(bt1); 
   container.add(bt2); 
   container.add(lb1);
   container.add(tf1);       

}

public static void main (String args []){        

    NovaJanela janela = new NovaJanela();   

}   

}[/code]

Desde já, grato.

Nunca coloque o setVisible(true) dentro do construtor da sua janela. Você está tentando tornar visível uma janela que sequer existe ainda.
Isso gera diversos problemas de layout.

[code]package gui;

import java.awt.FlowLayout;
import javax.swing.JButton;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class NovaJanela extends JFrame {

private JButton bt1;
private JButton bt2;    
private JLabel lb1;
private JTextField tf1;

public NovaJanela () {
super (“Cadastro”);
setSize(640, 480);

   bt1 = new JButton("bt1");
   bt2 = new JButton("bt2");       
   lb1 = new JLabel ("Nome");      
   tf1=new JTextField (10);
   
   add(bt1); 
   add(bt2); 
   add(lb1);
   add(tf1);

}

public static void main (String args []){        
    NovaJanela janela = new NovaJanela();   
    janela.setVisible(true); //Local correto   
}

}[/code]

Muito obrigado !!! como faço para colocar como resolvido ?