Construindo as classes de tela de cadastro

Propaganda
Construindo as classes de tela de cadastro
Vamos construir dois painéis para apresentar as diferenças no cadastro. O
JPanelCorpoAtividade e o JPanelCorpoSocio. Em cada um dos painéis, vamos criar métodos
para podermos acessar os atributos deste painel. Vamos renomear os campos JTextField para
ficar mais amigável:
 edt_atv
 edt_desc
Os métodos de acesso aos atributos são:
public void setAtv(int num){
edt_atv.setText(Integer.toString(num));
}
public void setNome(String texto){
edt_desc.setText(texto);
}
public int getAtv(){
return Integer.parseInt(edt_atv.getText());
}
public String getNome(){
return edt_desc.getText();
}
Observe que como o CodAtv é um Inteiro, se faz necessário converter Inteiro em String e vice
versa. Utilizamos os métodos Integer.parseInt e o Integer.toString para efetuar as conversões.
O painel do sócio é análogo. Construa da mesma maneira.
Com os painéis prontos, vamos construir a classe TelaCad, que é uma classe abstrata para
cadastros genéricos.
/*
* TelaCad.java
*
*/
package Visao;
import javax.swing.JPanel;
/**
*
* @author Eduardo Pareto
*/
public abstract class TelaCad extends javax.swing.JFrame {
/** Creates new form TelaCad */
public TelaCad() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jTitulo = new javax.swing.JLabel();
jPainel = new javax.swing.JPanel();
jbtnInclui = new javax.swing.JButton();
jbtnConsulta = new javax.swing.JButton();
jbtnAltera = new javax.swing.JButton();
jbtnExclui = new javax.swing.JButton();
jbtnSai = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTitulo.setFont(new java.awt.Font("Tahoma", 1, 14));
jTitulo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jPainel.setLayout(new java.awt.BorderLayout());
jbtnInclui.setText("Incluir");
jbtnInclui.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnIncluiActionPerformed(evt);
}
});
jbtnConsulta.setText("Consultar");
jbtnConsulta.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnConsultaActionPerformed(evt);
}
});
jbtnAltera.setText("Alterar");
jbtnAltera.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnAlteraActionPerformed(evt);
}
});
jbtnExclui.setText("Excluir");
jbtnExclui.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnExcluiActionPerformed(evt);
}
});
jbtnSai.setText("Sair");
jbtnSai.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnSaiActionPerformed(evt);
}
});
org.jdesktop.layout.GroupLayout layout = new
org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(105, 105, 105)
.add(jTitulo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 204,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(layout.createSequentialGroup()
.addContainerGap()
.add(jbtnInclui)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtnConsulta)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtnAltera)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtnExclui)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jbtnSai))
.add(layout.createSequentialGroup()
.add(29, 29, 29)
.add(jPainel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 356,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(34, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jTitulo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 16,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPainel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 233,
Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jbtnConsulta)
.add(jbtnAltera)
.add(jbtnExclui)
.add(jbtnSai)
.add(jbtnInclui))
.addContainerGap())
);
pack();
}// </editor-fold>
private void jbtnAlteraActionPerformed(java.awt.event.ActionEvent evt) {
trataAltera();
}
private void jbtnConsultaActionPerformed(java.awt.event.ActionEvent evt) {
trataConsulta();
}
private void jbtnIncluiActionPerformed(java.awt.event.ActionEvent evt) {
trataInclui();
}
private void jbtnSaiActionPerformed(java.awt.event.ActionEvent evt) {
trataSai();
}
private void jbtnExcluiActionPerformed(java.awt.event.ActionEvent evt) {
trataExclui();
}
// Variables declaration - do not modify
private javax.swing.JPanel jPainel;
private javax.swing.JLabel jTitulo;
private javax.swing.JButton jbtnAltera;
private javax.swing.JButton jbtnConsulta;
private javax.swing.JButton jbtnExclui;
private javax.swing.JButton jbtnInclui;
private javax.swing.JButton jbtnSai;
// End of variables declaration
abstract void trataAltera();
abstract void trataConsulta();
abstract void trataExclui();
abstract void trataInclui();
public void setCorpo(JPanel area){
jPainel.add(area);
}
public void setTitulo(String texto){
jTitulo.setText(texto);
}
private void trataSai() {
this.dispose();
}
}
Esta tela de cadastro contem 5 botões e um painel. No painel genérico colocaremos os painéis
específicos criado acima. Nos botões, programaremos genericamente as chamadas, para que
nas heranças, estas programações sejam feitas corretamente.
Para integrar as telas, a TelaPrinc precisa estar Associada a classe TelaCad.
TelaCad tela;
O Objeto tela será instanciado como TelaCadClube ou TelaCadSocio, dependendo da opção.
Neste momento, estamos implementando o Polomorfismo. Os métodos abaixo fazem os
tratamentos dos eventos da barra de menu.
private void trataAtividade() {
tela = new TelaCadClube();
tela.setVisible(true);
}
private void trataSocio() {
tela = new TelaCadSocio();
tela.setVisible(true);
}
Neste momento, nosso programa já tem a seguinte aparência:
Download