Olá pesoal!!!
Tenho que fazer um trabalho de faculdade que consiste em cadastrar filmes, eu já criei a interface, tratadores de eventos, etc.
Mas neste programa após preencher os campos de cadastro do filme, quando o usuário clicar em um botão cadastrar toda a informação inserida no formulário deverá ser armazenada em um objeto da classe Filme e, a mesma informação, deverá ser impressa - devidamente formatada - em uma área de texto.
Tenho uma noção de como imprimir, mas não consigo fazer aparte referente a gravação. Alguém poderia por favor dar algum exemplo, código referente a parte de gravação, mesmo sendo em outro tipo de sistema, para ter uma base para poder realizar esta tarefa.
Desde já, Obrigado.
Gravar em objetos
4 Respostas
Segue um exemplo resumido:
class Filme {
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CadastraFilme extends JFrame {
private JTextField txtNome;
private JButton btnCadastrar;
private Filme filme;
public CadastraFilme() {
txtNome = new JTextField(20);
btnCadastrar = new JButton("Cadastrar");
add(txtNome, BorderLayout.NORTH);
add(txtCadastrar, BorderLayout.SOUTH);
btnCadastrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(txtNome.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Informe o nome do livro");
return;
}
filme = new Filme();
filme.setNome(txtNome.getText());
}
});
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
Esse exemplo cadastra apenas UM livro, que tem apenas o atributo nome, então é só você seguir o exemplo e adicionar mais atributos. E caso queira cadastrar vários livros, use uma Collection como ArrayList para armazenar vários livros.
Espero que ajude.
T+
ps.: não testei esse códido, fiz ele aqui agora, não sei se vai funcionar certinho..
package cadastro;
import java.awt.<em>;
import javax.swing.</em>;
import java.awt.event.*;
/**
*Classe que cria formulario de cadastro
*@author Mauricio Castro Camargo
*@version 1.6
*/
public class Cadastro extends JFrame implements ActionListener{
private JLabel label1,label2,label3,label4,label5;
private JTextField texto1,texto2,texto3,texto4,texto5;
private JButton botaoCadastra,botaoCancela;
private JPanel panelCima,panelBaixo;
private JList lista;
/**
- Construtor da classe
*/
public Cadastro(){
/** Define dimensões, localização da janela */
super("Cadastro de Cliente");
setSize(450,250);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
label1 = new JLabel("Nome: ");
label2 = new JLabel("Gênero: ");
label3 = new JLabel("Diretor: ");
label4 = new JLabel("Faixa Etária: ");
label5 = new JLabel("Código do Filme: ");
lista = new JList();
botaoCadastra = new JButton("Cadastrar");
botaoCadastra.addActionListener(this);
botaoCancela = new JButton("Cancelar");
botaoCancela.addActionListener(this);
texto1 = new JTextField(20);
texto2 = new JTextField(20);
texto3 = new JTextField(20);
texto4 = new JTextField(20);
texto5 = new JTextField(20);
/** Disposição dos elementos na janela */
panelCima = new JPanel(new GridLayout(7,1,1,1));
panelBaixo = new JPanel(new GridLayout(1,3));
getContentPane().add(panelCima,BorderLayout.CENTER);
getContentPane().add(panelBaixo,BorderLayout.SOUTH);
/** Coloca os elementos na janela */
panelCima.add(label1);
panelCima.add(texto1);
panelCima.add(label2);
panelCima.add(texto2);
panelCima.add(label3);
panelCima.add(texto3);
panelCima.add(label4);
panelCima.add(texto4);
panelCima.add(label5);
panelCima.add(texto5);
panelCima.add(lista);
panelBaixo.add(botaoCadastra);
panelBaixo.add(botaoCancela);
}
/**
* Método para cadastrar as informações
*
*/
void cadastraFilme(){
Filme filme = new Filme();
filme.setNome(texto1.getText());
filme.setNome(texto2.getText());
filme.setNome(texto3.getText());
filme.setNome(texto4.getText());
filme.setNome(texto5.getText());
}
/**
*Evento para cadastrar e limpar os campos
*@param evento
*/
public void actionPerformed(ActionEvent evento){
if(evento.getSource() == botaoCancela){
cadastraFilme();
texto1.setText("");
texto2.setText("");
texto3.setText("");
texto4.setText("");
texto5.setText("");
}
}
/**
* Main, cria uma referência à classe Cadastro
*/
public static void main(String args[]){
Cadastro c = new Cadastro();
c.setVisible(true);
}
}
Duas dúvidas, em qual arquivo eu colocaria o ArrayList e no caso ficaria assim:
ArrayList lista = new ArrayList();
add.lista©;
Você pode colocar o ArrayList na classe CadastraFilme, ai você vai adicionando os filmes no seu método cadastraFilme:
void cadastraFilme(){
Filme filme = new Filme();
filme.setNome(texto1.getText());
filme.setNome(texto2.getText());
filme.setNome(texto3.getText());
filme.setNome(texto4.getText());
filme.setNome(texto5.getText());
meuArrayList.add(filme); // adiciona o Filme no ArrayList
}
T+
Cara, muito obrigado pela ajuda!!!
Vc esclareceu muita coisa.
Agora só falta mostrar as informações em uma area de texto, vou analisar e ver em alguns livros para terminar esta tarefa, qualquer dúvida volto a postar aqui. 