Fala aí galera,estou como uma dúvida e gostaria da ajuda de vocês!Sou estudante de ciência da computação,e iniciamos esse ano em orientação a objeto,gostei muito do java,e comecei a desenvolver um simples aplicativo por conta.A principio a idéia era desenvolver um aplicativo de cadastro e pesquisa de clientes.Criei uma classe chamada cliente com seus atributos métodos construtor e gets e sets,uma classe herança chamada fornecedor com o construtor,gets e sets,uma classe principal com o método principal e o objeto,até ai tá perfeito o programa.Daí criei a parte do visual no mesmo pacote,deu certo tbm.Aí aparece minha dúvida,visto que não aprendemos ainda essa parte na faculdade,o que fazer após isso? acredito eu que tenha que juntar os dois,codigo e visual,porém se for,como fazer isso?
Gostaria de contar com a experiencia de vocês,sei que nada cai do céu rsrsrsrs então se tiverem algum material para mandarem,gostaria muito de estudar esta parte para continuar meu aplicativo,ou se puderem me explicar por aqui mesmo,melhor ainda! Desde já agradeço. abraço!
É muito simples…
Clique duas vezes em um JButton (por exemplo), se estiver utilizando alguma IDE ou adicione este código em sua GUI:
botaoCadastrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Aqui você chama algum método de sua classe Cadastro
Cadastro.cadastrarCliente();
}
});
Este modelo se aplica aos demais botões.
:idea: P.S.: Altere o título de seu post para algo mais descritivo, com um título obvio como “Dúvida” além de não seguir as regras do fórum :arrow: http://www.guj.com.br/java/39020-regras-do-forum a maioria das pessoas nem entram em tópicos com títulos iguais a este.
:thumbup:
Obrigado pela dica,já alterei o assunto!
Voltando ao meu problema,entendi o que você me explicou,então no caso tenho que incluir uma classe cadastro,para poder chamar esse método mais lá na frente certo?!
Outra dúvida é com respeito ao objeto…no caso criei o conteudo dele entre as aspas vazio,para poder instanciar na hora que a pessoa introduzir um valor no cadastro,agora como relacionar ele com a GUI?
Obrigado.
Não. A classe cadastro só foi um exemplo, este código que eu postei serve para você colocar um evento no botão da sua tela (GUI), o nome da sua classe é cliente e fornecedor, né? você pode usar as suas classes e seus gets e sets.
Assim (por exemplo) o usuário digita o nome do cliente, o telefone e o rg, cada um em uma caixa de texto (JTextField), para você passar estes dados ao construtor do novo objeto você faz assim:
String nome = caixaDeTexto1.getText(); //pega o texto que o usuário digitou no JTextField e guarda na variável nome.
String telefone = caixaDeTexto2.getText();
Cliente novoCliente = new Cliente(nome, telefone, caixaDeTexto3.getText()); //aqui você instancia um novo objeto (novoCLiente) do tipo Cliente e passa os argumentos no construtor da classe, note que você pode passar o valor das variáveis (nome e telefone) e/ou o texto do caixaDeTexto3.
Depois para exibir sua GUI na classe main você faz isto:
new GUI.setVisible(true);
:thumbup:
Cara,estou tendo bastante dificuldade nesta parte…não acho nenhum tutorial sobre isso! Não estou consigiundo juntar os dois,a idéia que você me passou eu entendi,porém não consigo aplica-lá no meu programa. 
Esqueci de mencionar nos posts anteriores a IDE usada é o netbeans!
Poste seu código fonte que eu mostro um exemplo (no seu código) de como juntar.
:thumbup:
Bom essa é a classe Cliente
public class Cliente { /*inicio classe cliente */
public String nome,end,email; /*atributos */
public int tel,cel;
/* inicio método construtor */
public Cliente(String $nome,String $end,String $email,int $tel,int $cel){
this.nome = $nome;
this.end = $end;
this.email = $email;
this.tel = $tel;
this.cel = $cel;
} /* fim método construtor */
/* métodos gets e sets dos atributos */
public String getNome(){
return nome;
}
public void setNome(String $nome){
this.nome = $nome;
}
public String getEnd(){
return end;
}
public void setEnd(String $end){
this.end = $end;
}
public String getEmail(){
return email;
}
public void setEmail(String $email){
this.email = $email;
}
public int geTel(){
return tel;
}
public void setTel(int $tel){
this.tel = $tel;
}
public int getCel(){
return cel;
}
public void setCel(int $cel){
this.cel = $cel;
}
}
Essa a classe Fornecedor
public class Fornecedor extends Cliente { /* inicio classe fornecedor */
public String razaoSocial,contato,cidade,estado;
/* método construtor */
public Fornecedor(String $nome,String $end,String $email,int $tel,int $cel,
String $razaoSocial,String $contato,String $cidade,String $estado){
super($nome,$end,$email,$tel,$cel);
this.razaoSocial = $razaoSocial;
this.contato = $contato;
this.cidade = $cidade;
this.estado = $estado;
}
/* métodos gets e sets*/
public String getRazaoSocial(){
return razaoSocial;
}
public void setRazaoSocial(String $razaoSocial){
this.razaoSocial = $razaoSocial;
}
public String getContato(){
return contato;
}
public void setContato(String $contato){
this.contato = $contato;
}
public String getCidade(){
return cidade;
}
public void setCidade(String $cidade){
this.cidade = $cidade;
}
public String getEstado(){
return estado;
}
public void setEstado(String $estado){
this.estado = $estado;
}
}
Aí eu bolei um menuzinho gráfico,que ficou bacana que tem os campos para efutar o cadastro para ambas as classes,com opção de cadastrar,alterar e excluir.
Segue um exemplo (projeto em anexo).
Note que: eu não nomeei as variáveis e não fiz tratamentos de erros, somente criei uma tela (simples) para mostrar como usar os gets e sets da sua subclasse Fornecedor (o mesmo pode ser usado na superclasse Cliente).
Note também: você precisa mudar a visibilidade do atributos das classes para ter sentido o uso de get e set, pois com visibilidade pública qualquer classe pode mudar o valor desse atributos.
Mude a superclasse Cliente de:
public String nome,end,email; /*atributos */
public int tel,cel;
para:
protected String nome,end,email; /*atributos */
protected int tel,cel;
E mude a subclasse Fornecedor de:
public String razaoSocial,contato,cidade,estado;
para:
private String razaoSocial,contato,cidade,estado;
:thumbup:
Cara,muito obrigado!! Dei vida para a minha telinha kkkkkk
Meu método principal ficou assim :
[code]
public class Principal {
public static void main(String [] args){
new JFMenu().setVisible(true);
[/code]
Dai na hora de executar ele apresenta a tela do meu menu que permite entrar para cadastrar o cliente ou o fornecedor!
Agora para criar o objeto eu fiz dessa maneira(não tenho certeza se é coerente isso na programação) coloquei espaços vazios entre aspas por não saber o conteúdo que vai instaciar o objeto,ele não apresentou erro.
Fornecedor obj = new Fornecedor(" "," "," ",' ',' '," "," "," "," ");
Se estiver correto,gostaria de saber como vou passar os dados que o usuario digitar para o meu codigo(não sei se instancia para o objeto,ou para algum método).Como faço isto?
No seu ultimo post,você me orientou a mudar a visibilidade dos atributos para dar sentido ao get e ao set,eu alterei…porém ficou a duvida se tem que alterar essa parte também
public String getRazaoSocial(){
return razaoSocial;
}
public void setRazaoSocial(String $razaoSocial){
this.razaoSocial = $razaoSocial;
Obrigado.
Você usa os métodos set, assim…
novoFornecedor.setRazaoSocial(txtRazao.getText());
…em todos os set é só pegar o getText(); do JTextField correspondente, note que é semelhante a passar os dados no construtor do objeto (novoFornecedor), porém agora ao invés de instanciar o objeto pelo evento do JButton você coloca aquele código acima no JButton.
[quote=filipi]No seu ultimo post,você me orientou a mudar a visibilidade dos atributos para dar sentido ao get e ao set,eu alterei…porém ficou a duvida se tem que alterar essa parte também
public String getRazaoSocial(){
return razaoSocial;
}
public void setRazaoSocial(String $razaoSocial){
this.razaoSocial = $razaoSocial;
Obrigado.[/quote]
Está parte (e os demais get e set) está certa, porque isto é um dos conceitos de P.O.O (bem resumidamente): atributos private e/ou protected e métodos public.
:thumbup: