Interface Grafica - Posicionamento

Pessoal,

Preparei o seguinte classe abaixo, porém não consigo posicionar os botoes em qualquer lugar dentro do frame. Tentei a propriedade setLocation dele, porém não consigo alterar este posicionamento.
Alguem sabe pque ?
Obrigado.

private TextField txtTeste;
private Button btTeste;
private Button btTest2;

//Construtor
public frameDemo3 () {
super (“Componentes Basicos”);
setLayout (new FlowLayout());
setSize(300,100);
setLocation(100,100);
this.setBackground( new Color(0,100,100));
setLayout (new FlowLayout()); btTeste = new Button(“Botao1”);
btTest2 = new Button(“Botao2”); add(btTeste);
add(btTest2);
}

public void actionPerformed(ActionEvent e){
btTest2.setLocation(120,300);}
}

static public void main (String args []){
frameDemo3 f = new frameDemo3();
f.addWindowListener(new CloseWindowAndExit ());
f.show();
}

usa o GridBagLayout… fica assim:

private TextField txtTeste;
private Button btTeste;
private Button btTest2;

//Construtor
public frameDemo3 () {
super (“Componentes Basicos”);
GridBagLayout grid = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout (grid);
setSize(300,100);
setLocation(100,100);
this.setBackground( new Color(0,100,100));

//no GridBagLayout vc adiciona os componentes como se estivessem em uma tabela (como no excel) entao vc especifica uma coordenada x e y:

c.gridx = 2; //coordenada x do componente
c.gridy = 2;//coordenada y do componente
grid.setConstraints(c,btTeste);//nada de mais é só decorar essa linha
btTeste = new Button(“Botao1”);
add(btTeste);

c.gridx = 3; //coordenada x do componente
c.gridy = 2;//coordenada y do componente
grid.setConstraints(c,btTeste);//nada de mais é só decorar essa linha
btTest2 = new Button(“Botao2”);
add(btTest2);

}

escolhi colocar um botao ao lado do outro, mas vc pode colocar onde quiser. é só alterar as coordenadas (c.gridx, c.gridy)