Olá Pessoal!!
Olha só, tenho a Classe PainelCadastraAreas que armazena seus dados na Classe Areas. E preciso desses dados para preencher uma ComboBox numa terceira Classe chamada PainelCadastraExames. Porque pra qualquer exame q eu cadastre, precisa ter uma área já cadastrada. No evento do botão Salvar, na Classe PainelCadastraAreas estou colocando um vetor.size() para saber o tamanho final dele, armazenando em qtd (da classe Areas) pra pegar esse valor e preencher a ComboBox que precisar ser numa String… O problema é que quando vou tentar pegar qtd, na Classe PainelCadastraExames, ta dando vetor nulo. Que eu faço?
Códigos:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import java.util.Vector;
import javax.swing.*;
import javax.swing.GroupLayout.Alignment;
public class PainelCadastraAreas extends JFrame implements ActionListener{
private static Vector vetorArea = new Vector();
private JTextField nome,tNome,tDesc, tCodigo;
JButton botaoLimpar,botaoSalvar;
JPanel painelGeral = new JPanel();
JPanel pBotao = new JPanel();
boolean valido;
private int cod=0;
JLabel codigo= new JLabel(Integer.toString(cod),JLabel.CENTER);
//método construtor
PainelCadastraAreas(){
JPanel pAreas = new JPanel();
painelGeral.setOpaque(true);
painelGeral.setLayout(new BorderLayout());
pAreas.setLayout(new GridLayout(3,2,10,10));
JLabel cod1 = new JLabel("Codigo: ");
pAreas.add(cod1);
tCodigo = new JTextField();
pAreas.add(tCodigo);
JLabel nome = new JLabel("Nome: ");
pAreas.add(nome);
tNome = new JTextField();
pAreas.add(tNome);
JLabel descricao = new JLabel("Descrição: ");
pAreas.add(descricao);
tDesc = new JTextField();
pAreas.add(tDesc);
painelGeral.add(pAreas,BorderLayout.CENTER);
painelGeral.setBorder(BorderFactory.createTitledBorder("Cadastro Áreas"));
botaoLimpar = new JButton ("Limpar");
botaoSalvar=new JButton("Salvar");
pBotao.add(botaoSalvar);
pBotao.add(botaoLimpar);
botaoLimpar.addActionListener(this);
botaoSalvar.addActionListener(this);
painelGeral.add(pBotao,BorderLayout.SOUTH);
}
public JPanel cadastraArea(){
return painelGeral;
}
public void recebeCod (int qnt){
cod=qnt;
codigo.setText(Integer.toString(cod));
codigo.setBorder(BorderFactory.createLineBorder(Color.GRAY));
}
public boolean validaDados(){
if (tNome.getText().equals("")||
tDesc.getText().equals("")){
return false;
}
else{
return true;
}
}
public void limpaDados(){
tCodigo.setText("");
tNome.setText("");
tDesc.setText("");
}
public JLabel getLCod() {
return codigo;
}
public void setLCod(JLabel cod) {
codigo= cod;
}
public JTextField getTNome() {
return tNome;
}
public void setTNome(JTextField nome) {
tNome = nome;
}
public JTextField getTDesc() {
return tDesc;
}
public void setTDesc(JTextField descricao) {
tDesc = descricao;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == botaoLimpar){
limpaDados();
}
if(e.getSource() == botaoSalvar){
if(validaDados() == false){
JOptionPane.showMessageDialog(null,"Não foi possível salvar por falta de dados !","Hospital",JOptionPane.WARNING_MESSAGE);
}
else{
Areas area = new Areas();
if ((validaNomeCodigo(vetorArea, tNome.getText(),
Integer.parseInt(codigo.getText()))) == true){
area.setCodigo(Integer.parseInt(codigo.getText()));
area.setNome(tNome.getText());
area.setDescricao(tDesc.getText());
vetorArea.add(area);
JOptionPane.showMessageDialog(null,"Cadastro realizado!","Hospital",JOptionPane.INFORMATION_MESSAGE);
area.setQtd(vetorArea.size());
limpaDados();
}
}
}
}
public boolean validaNomeCodigo(Vector vtArea, String nome, Integer cod){
for (int aux=0; aux<vtArea.size(); aux++){
Areas area = (Areas) vtArea.get(aux);
if((nome.equalsIgnoreCase(area.getNome())) || (cod.equals(area.getCodigo()))){
JOptionPane.showMessageDialog(null,"Dados inválidos!","Hospital",JOptionPane.WARNING_MESSAGE);
limpaDados();
return false;
}
}
return true;
}
}
public class Areas {
private Integer codigo, qtd;
private String nome, descricao;
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getNome() {
return nome;
}
public Integer getCodigo() {
return codigo;
}
public String getDescricao() {
return descricao;
}
public Integer getQtd() {
return qtd;
}
public void setQtd(Integer qtd) {
this.qtd = qtd;
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.*;
import javax.swing.GroupLayout.Alignment;
public class PainelCadastraExames extends JFrame implements ActionListener{
private static Vector vetorExame = new Vector();
private JTextField nome,tNome,tCrm,tValor,tExame;
JButton botaoLimpar,botaoSalvar,botaoSair;
JPanel painelGeral = new JPanel();
JPanel pBotao = new JPanel();
boolean valido;
private int cod=0;
JLabel codigo= new JLabel(Integer.toString(cod),JLabel.CENTER);
JComboBox comboArea;
//método construtor
PainelCadastraExames(){
JPanel pExames = new JPanel();
painelGeral.setOpaque(true);
painelGeral.setLayout(new BorderLayout());
pExames.setLayout(new GridLayout(5,2,10,10));
JLabel cod1 = new JLabel("Codigo: ");
pExames.add(cod1);
pExames.add(codigo);
JLabel nome = new JLabel("Médico responsável: ");
pExames.add(nome);
tNome = new JTextField();
pExames.add(tNome);
JLabel descricao = new JLabel("Crm do médico: ");
pExames.add(descricao);
tCrm = new JTextField();
pExames.add(tCrm);
JLabel valor = new JLabel("Valor : ");
pExames.add(valor);
tValor = new JTextField();
pExames.add(tValor);
JLabel nomeExame = new JLabel("Nome do exame : ");
pExames.add(nomeExame);
tExame = new JTextField();
pExames.add(tExame);
Areas qtdArea = new Areas();
Integer qtd = qtdArea.getQtd();
String[] areas = new String[qtd];
if(qtd != null){
Vector vetor = new Vector();
for (int aux=0; aux<vetor.size(); aux++){
Areas area = (Areas) vetor.get(aux);
areas[aux] = area.getNome();
}
}
//String qtdArea[] = {"casa", "boia", "lua", "sol"};
comboArea = new JComboBox(areas);
pExames.add(comboArea);
painelGeral.add(pExames,BorderLayout.CENTER);
painelGeral.setBorder(BorderFactory.createTitledBorder("Cadastro Exames"));
botaoLimpar = new JButton ("Limpar");
botaoSalvar=new JButton("Salvar");
botaoSair=new JButton("Sair");
pBotao.add(botaoSalvar);
pBotao.add(botaoLimpar);
pBotao.add(botaoSair);
botaoLimpar.addActionListener(this);
botaoSalvar.addActionListener(this);
botaoSair.addActionListener(this);
painelGeral.add(pBotao,BorderLayout.SOUTH);
}
public JPanel cadastraExame(){
return painelGeral;
}
public void recebeCod (int qnt){
cod=qnt;
codigo.setText(Integer.toString(cod));
codigo.setBorder(BorderFactory.createLineBorder(Color.GRAY));
}
public boolean validaDados(){
if (tNome.getText().equals("") || tCrm.getText().equals("")
|| tValor.getText().equals("") || tExame.getText().equals("")){
return false;
}
else{
return true;
}
}
public void limpaDados(){
tNome.setText("");
tCrm.setText("");
tValor.setText("");
tExame.setText("");
}
public JLabel getLCod() {
return codigo;
}
public void setLCod(JLabel cod) {
codigo= cod;
}
public JTextField getNome() {
return tNome;
}
public void setNome(JTextField nome) {
tNome = nome;
}
public JTextField getCrm() {
return tCrm;
}
public void setCrm(JTextField crm) {
tCrm = crm;
}
public JTextField getValor() {
return tValor;
}
public void setValor(JTextField valor) {
tValor = valor;
}
public JTextField getExame() {
return tExame;
}
public void setExame(JTextField exame) {
tExame = exame;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == botaoLimpar){
limpaDados();
}
if(e.getSource() == botaoSalvar){
if(validaDados() == false){
JOptionPane.showMessageDialog(null,"Não foi possível salvar por falta de dados !","Hospital",JOptionPane.WARNING_MESSAGE);
}
else{
Exames exame = new Exames();
exame.setNomeMedico(tNome.getText());
exame.setCrmMedico(tCrm.getText());
exame.setValor(Double.parseDouble(tValor.getText()));
vetorExame.add(exame);
JOptionPane.showMessageDialog(null,"Cadastro realizado!","Hospital",JOptionPane.INFORMATION_MESSAGE);
limpaDados();
}
}
}
}
