Unir interface com programa RESOLVIDO

Ola,

Vi um topico parecido com minha duvida mas não me ajudou muito.

Fiz um programa de cadastro dividido em varias partes, uma classe pra cada dado (nome, email, etc) uma classe pra grava em um arquivo txt, um pra ler, uma classe chamada aluno que une todas as classes de dados (nome, email, etc) e a classe main. Fiz essa usando um editor de texto comum. Tambem fiz as interfaces separadas, uma pra tela inicial, uma pra cadastro e uma pra busca e listar ( fiz elas no net beans). Tem algum jeito simples de unir as interfaces com os codigos?

Que isso rapaz, uma classe para cada função??

Como eu provavelmente expliquei quase a mesma coisa no outro topico, voce pode fazer o seguinte:

(EXEMPLO)

  • O usuario vai possuir um menu principal
  • neste menu coloco botoes, ou itens de menu que leva o usuario para as seguintes telas: Cadastra Usuario, Deleta Usuario…etc
  • Quando seleciono a opção Cadastra usuario, eu posso usar Dialogs, ou simplesmente abrir um novo frame.
  • Neste frame, assim que voce digitar as informaçoes do usuario, voce quer conferir e salvar os dados em txt (aqui voce simplesmente pode
    criar o metodo dentro deste mesmo frame CadastraCliente.java ou chamar outra classe para faze-lo (da mesma maneira utilizada em POO …pessoa.java + cadastro.java, etc).

Espero ter ajudado, qualquer coisa especifique a sua necessidade ai… flwss

eu nao tenho que mudar os labels pra aceitar os dados então?

e era exigencia do professor que para nome, se tenha uma classe, para endereço outra classe, email, outra classe etc

gustavo.rotondo vc pode unir as interfaces da seguinte forma:

Cria a tela principal, nela vc add um JMenu e adiciona uns ítens a ele, tipo cadastrar, buscar e listas.
Feito isso cada interface criada(buscar,etc…) ao invés de ser um Jframe vc criar elas como sendo um JInternalFrame, pois ai vc pode add elas ao FFrame principal.

Depois disso é só controlar os evento com a exibição da interface solicitada, através dos métodos setvisible();

Qualquer dúvida só falar.

entendi

criei o menu e quando clico em adicionar, ele abre o frame de adicionar, meio que consegui aqui, acho que to no caminho certo

obrigado a todos

Se voce pensar que no POO nós utilizamos da seguinte maneira justamente para o codigo nao virar uma anarquia…
ex:.


package dominio;

public class Pessoa {
    private int idPessoa;
    private String nome;
    private String dataNascimento;
    private String email;
    private String endereco;

    public Pessoa() {
    }

    public Pessoa(int idPessoa, String nome, String dataNascimento, String email, String endereco) {
        this.idPessoa = idPessoa;
        this.nome = nome;
        this.dataNascimento = dataNascimento;
        this.email = email;
        this.endereco = endereco;
    }

    public String getDataNascimento() {
        return dataNascimento;
    }

.............

Outra coisa, Labels não aceitam dados, são os fields…

só pra eu entender

o minha janela principal seria o meu “main”. pois eu tenho o main que abre a janela do dos para inserir os dados

quando eu clicar no botão ok, ele faria a mesma coisa que eu faço para salvar no txt

seria por ai?

Exatamente, vamos supor que ao iniciar o sistema, abre o seu frame principal (main.java), insere os dados nos fields, seleciona o botao ‘salvar’ e
neste proprio codigo (main.java) voce chama o metodo salvarDadosTxt()… e assim por diante.

como eu faria para salvar no field?

seria igual atribuir o filed 1 a matricula por exemplo?

gustavo.rotondo não entendi muito bem o que vc falou, mas vc pode estar fazendo o seguinte:

A classe principal pode conter sim o main.

Porém não acho interessante assim que rodar a aplicação vc pedir que o usuário faça algum cadastro, tendo em vista que é possível que alguns dados já estejam cadastrados, porém isso depende de sua solução.

Na classe principal vc adiciona as classes herdados do JInternalFrame, e quando solicitado vc exibi.

.

Eu acredito que ‘salvar no field’ como voce citou, voce quer dizer trazer os dados do txt ao jtextfield, se for o caso, voce pode usar o setText, agora com arquivo de texto eu nunca usei, mas não deve ser dificil organizar estes dados…boa sorte ae

é possivel eu salvar só inteiros em um field?

matricula por exemplo

declarei a variavel

private javax.swing.JTextField mat;

como eu faço para que esse field aceite só inteiros?

exemplo

fiz esse codigo qando pressionar ok ao final do cadastro

[code]
private void okActionPerformed(java.awt.event.ActionEvent evt) {
try {
Scanner input = new Scanner(System.in);
Scanner oper = new Scanner(System.in);
HashSet alunos = new HashSet();
Aluno al = new Aluno(mat, nome, data, end, email);
alunos.add(al);
FileWriter arq = new FileWriter(“aluno.txt”,true);
PrintWriter gravarArq = new PrintWriter(arq);
gravarArq.printf("\n Matricula %d \n Nome %s \n Data %s \n Endereco %s \n Email %s",mat,nome,data, end, email);
arq.close();
}catch (IOException e){
System.out.print(“ERRO”);
}

}

[quote]

ele da erro quando eu crio o new Aluno, pois o meu construtor de aluno recebe int e strings, e pelo erro que da, ele fala que eu passo “javax.swing.JTextField,”. queria transformar esses text field em int e string

Referente à pergunta sobre aceitar valores inteiros
Resp:. Procure no forum pois deve haver milhares de perguntas semelhantes.

Referente ao btn OK
Resp:. Como diabos voce esta usando JTextField com Scanner? Voce deve usar getters para recuperar os dados dos fields, e tente colar o erro de compilação para facilitar…

acho que descobri como faz

 private void okActionPerformed(java.awt.event.ActionEvent evt) {
		try {
				nome1 = nome.getText();
				email1 = email.getText();
				end1 = end.getText();
				data1 = data.getText();
				mat1=Integer.parseInt(mat.getText());
				HashSet<Aluno> alunos = new HashSet<Aluno>();
				Aluno al = new Aluno(mat1, nome1, data1, end1, email1);
				alunos.add(al);
				FileWriter arq = new FileWriter("aluno.txt",true);
				PrintWriter gravarArq = new PrintWriter(arq);
				gravarArq.printf("\n Matricula %d \n Nome %s \n Data %s \n Endereco %s \n Email %s",mat,nome,data, end, email);
                arq.close();
									}catch (IOException e){
											System.out.print("ERRO");
						}

    }

mas não é criado nenhum txt

consegui, esqueci de criar o botão

mas o metodo seria assim mesmo ou foi sorte?

uma outra duvida

posso usar o field pra imprimir os dados tambem?

consegui

obrigado a todos