Dar utilidade à botões

Olá!

Estou começando agora a mexer com interface gráfica (comecei a 2h pra ser mais exato).

Tenho uma classe “Agenda” que contém a classe main, nessa classe há botoes de “Cadastro”, “Ediçao” “Exclusão” e “Pesquisa”, quero fazer com que esses botões instanciem objetos da minha classe “Contato”, que contém os atributos e métodos de manuseio de contatos. Como faço isso? Procurei alguns tutos na net e achei meio vago por ter poucos comentários no código.

Código da classe Agenda:

[code]import javax.swing.;
import java.awt.
;

public class Agenda {
public static void main(String[] args) {
// Cria a janela principal da Agenda
JFrame janelaPrincipal = new JFrame(“Agenda”);
janelaPrincipal.setBounds(150,100,800,400);
janelaPrincipal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	// Define a organização do frame janelaPrincipal
	FlowLayout flow = new FlowLayout();
	Container caixa = janelaPrincipal.getContentPane();
	caixa.setLayout(flow);
	
	// Cria os botoes de cadastro, exclusão e edição de contatos
	caixa.add(new JButton("Cadastrar Contato"));
	caixa.add(new JButton("Excluir Contato"));
	caixa.add(new JButton("Editar Contato"));
	
	// Escreve, cria a caixa de texto e o botão ok do objeto Pesquisa
	JLabel labelDePesquisa = new JLabel ("Pesquisar:");
	caixa.add(labelDePesquisa);
	JTextField campoDePesquisa = new JTextField(15);
	caixa.add(campoDePesquisa);
	caixa.add(new JButton("Ok"));
	
	// Exibe a janela
	janelaPrincipal.setVisible(true);
}  

} [/code]

classe Contato ainda estou fazendo, pois acho que primeiro devo resolver a Agenda pra continuar com ela, mas segue o esboço com os atributos pra terem idéia do que ela vai fazer:

[code]public class Contato {
String nome;
String sobrenome;
String empresaDoContato;
String telefoneComercial;
String telefoneCelular;
String email;
String endereco;

// Cadastra novo contato
boolean cadastra() {
	[/code]

Dica: Abra dúvidas de interface gráfica no fórum de interface gráfica, não do de Java Básico. Seu tópico foi movido.

Para fazer o que você quer, o primeiro passo é criar separadamente seus JButtons:

Isso porque você terá que associar mais propriedades a ele, com um listener de eventos. Esse listener é um objeto que implementa a interface ActionListener, que é chamada sempre que um botão é pressionado. Existem diversos tipos de listeners diferentes, para os diferentes tipos de eventos.

Ali sim, você irá fazer o que seu botão tem que fazer:

JButton btnCadastro = new JButton("Cadastrar Contato"); btnCadastro.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { JOptionPane.showMessageDialog(null, "Parabéns! Você clicou no botão de cadastro!"); } });

Normalmente, não criamos todo código das telas no main, como você fez. Cada janela será uma classe separada, que herda de JFrame.
E a criação da janela é feita dentro do construtor. Apenas o setVisible(true) fica fora do construtor.

[quote=ViniGodoy]
Normalmente, não criamos todo código das telas no main, como você fez. Cada janela será uma classe separada, que herda de JFrame.
E a criação da janela é feita dentro do construtor. Apenas o setVisible(true) fica fora do construtor.[/quote]

inclusive a janela principal? o objeto era eu definir mesmo as janelas dos objetos de cadastro fora da main, vou tentar implementar!

vlw a dica e a ajuda, e da próxima vez eu crio no lugar certo. jajá dou feedback aki.

edit:

ta dando certo, vlw cara! mas vou tentar refazer meu código usando suas dicas pras janelas.

Sim. Inclusive a janela principal. O main fica resumido a:

public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { new JanelaPrincipal().setVisible(true); } }); }

Valeu cara! Vou tentar implementar dessa forma.

Obrigado.