Fala galera, estou sofrendo um pouco numa parte do meu sistema. Estou estudando gravação de arquivos para consulta depois, nesse sistema tem duas JComboBox, porém, se eu deixar nos primeiros itens de ambos, ele grava o arquivo, se eu mudar para outros itens do JComboBox já não salva...
Nela tem uma Array...
Segue o código:
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
class SistemaCadastro extends JFrame implements ActionListener, ItemListener{
JLabel lblNome, lblClinica, lblEquip, lblMotivo, lblDescricao, lblGerarProtocolo, lblHistorico;
JTextField txtNome, txtClinica, txtGerarProtocolo;
JComboBox cbEquip, cbMotivo;
JTextArea taDescricao;
JButton btSalvar, btLimpar, btGerarProtocolo, btConsultar, btIncluir;
JTable clientes;
DefaultTableModel table = new DefaultTableModel();
TelaConsulta consultando = new TelaConsulta();
SistemaCadastro(){
setTitle("Sistema de Cadastro e estatisticas");
setSize(800,800);
setLocation(1,1);
getContentPane().setLayout(null);
setResizable(false);
lblNome = new JLabel("Nome do Cliente");
lblNome.setBounds(5,10,200,20);
txtNome = new JTextField();
txtNome.setBounds(5,35,300,20);
txtNome.setEnabled(false);
getContentPane().add(lblNome);
getContentPane().add(txtNome);
lblClinica = new JLabel("Nome da Clínica");
lblClinica.setBounds(5,60,200,20);
txtClinica = new JTextField();
txtClinica.setBounds(5,85,300,20);
txtClinica.setEnabled(false);
getContentPane().add(lblClinica);
getContentPane().add(txtClinica);
String[] equipa = {"00 - Dyna-MAPA","01 - Dyna-MAPA+","02 - Cardio-Flash","03 - Cardio-Flash+","04 - Cardio Light","05 - Cardio Seven","06 - Cardio Loop","07 - CardioNet Client","08 - CardioNet Server","09 - Cardio Smart"};
lblEquip = new JLabel("Nome do Equipamento");
lblEquip.setBounds(350,10,200,20);
cbEquip = new JComboBox(equipa);
cbEquip.addItemListener(this);
cbEquip.setBounds(350,35,200,20);
getContentPane().add(lblEquip);
getContentPane().add(cbEquip);
String[] motivo = {"000 - Instalação/Reinstalação","001 - Configuração","002 - BackUp","003 - Dific. em utilizar sistema","004 - Erro de sistema","005 - Informações","006 - Transferência indevida","007 - Dúvidas Ass.Tecnica","008 - Tratamento interno", "009 - Transferência Interna", "010 - Cliente solicita retorno", "011 - Retorno de contato"};
lblMotivo = new JLabel("Motivo do Chamado");
lblMotivo.setBounds(350,60,200,20);
cbMotivo = new JComboBox(motivo);
cbMotivo.addItemListener(this);
cbMotivo.setBounds(350,85,200,20);
getContentPane().add(lblMotivo);
getContentPane().add(cbMotivo);
lblDescricao = new JLabel("Descrição da ocorrência (até 255 caracteres).");
lblDescricao.setBounds(5,110,350,20);
taDescricao = new JTextArea(5,40);
taDescricao.setBounds(5,135,550,125);
taDescricao.setEnabled(false);
getContentPane().add(lblDescricao);
getContentPane().add(taDescricao);
lblGerarProtocolo = new JLabel("Protocolo");
lblGerarProtocolo.setBounds(580,10,200,20);
txtGerarProtocolo = new JTextField();
txtGerarProtocolo.setBounds(580,35,200,20);
txtGerarProtocolo.setEnabled(false);
btGerarProtocolo = new JButton("Gerar Protocolo");
btGerarProtocolo.setBounds(580,60,200,20);
btGerarProtocolo.addActionListener(this);
btGerarProtocolo.setEnabled(false);
getContentPane().add(lblGerarProtocolo);
getContentPane().add(txtGerarProtocolo);
getContentPane().add(btGerarProtocolo);
btConsultar = new JButton("Consultar Cliente");
btConsultar.setBounds(580,135,200,20);
btConsultar.addActionListener(this);
getContentPane().add(btConsultar);
btIncluir = new JButton("Incluir Cliente");
btIncluir.setBounds(580,170,200,20);
btIncluir.addActionListener(this);
getContentPane().add(btIncluir);
btSalvar = new JButton("Salvar Cliente");
btSalvar.addActionListener(this);
btSalvar.setBounds(580,205,200,20);
btSalvar.setEnabled(false);
getContentPane().add(btSalvar);
btLimpar = new JButton("Limpar Tela");
btLimpar.setBounds(580,240,200,20);
btLimpar.addActionListener(this);
btLimpar.setEnabled(false);
getContentPane().add(btLimpar);
lblHistorico = new JLabel("Histórico de contato do cliente");
lblHistorico.setBounds(5,275,400,20);
clientes = new JTable(table);
clientes.setBounds(5,300,775,450);
clientes.setModel(table);
JScrollPane scroll = new JScrollPane( clientes );
getContentPane().add(scroll, BorderLayout.CENTER);
getContentPane().add(lblHistorico);
getContentPane().add(clientes);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btConsultar)
{
txtNome.setText("");
txtClinica.setText("");
taDescricao.setText("");
txtGerarProtocolo.setText("");
txtNome.setEnabled(false);
txtClinica.setEnabled(false);
taDescricao.setEnabled(false);
btGerarProtocolo.setEnabled(false);
btSalvar.setEnabled(false);
btLimpar.setEnabled(false);
consultando.setVisible(true);
}
if(e.getSource()==btIncluir)
{
txtNome.setText("");
txtClinica.setText("");
taDescricao.setText("");
txtGerarProtocolo.setText("");
txtNome.setEnabled(true);
txtClinica.setEnabled(true);
taDescricao.setEnabled(true);
btGerarProtocolo.setEnabled(true);
btSalvar.setEnabled(true);
btLimpar.setEnabled(true);
}
if (e.getSource()==btSalvar)
{
if (cbEquip.getSelectedIndex()==0)
try {
PrintWriter out;
out = new PrintWriter(txtNome.getText()+".txt");
out.println(txtNome.getText());
out.println(txtClinica.getText());
out.println(EquipamentoGravado(null));
out.println(Motivo(null));
out.println(taDescricao.getText());
out.close();
JOptionPane.showMessageDialog(null, "Arquivo gravado com sucesso!");
} catch (FileNotFoundException e1) {
JOptionPane.showMessageDialog(null, "Houve erro na gravação do arquivo");
e1.printStackTrace();
}
}
if(e.getSource()==btLimpar)
{
txtNome.setText("");
txtClinica.setText("");
taDescricao.setText("");
txtGerarProtocolo.setText("");
txtNome.setEnabled(false);
txtClinica.setEnabled(false);
taDescricao.setEnabled(false);
btGerarProtocolo.setEnabled(false);
btGerarProtocolo.setEnabled(false);
btSalvar.setEnabled(false);
btLimpar.setEnabled(false);
}
}
public static void main(String[] args) {
JFrame janela = new SistemaCadastro();
janela.setUndecorated(true);
janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
}
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
}
Os métodos para buscar as informações da Array:
public String EquipamentoGravado(String ver){
String equipVer = "";
switch (cbEquip.getSelectedIndex())
{
case 0: equipVer = "Dyna-Mapa"; break;
case 1: equipVer = "Dyna-Mapa+"; break;
case 2: equipVer = "CardioFlash"; break;
case 3: equipVer = "CardioFlash+"; break;
case 4: equipVer = "CardioLight"; break;
case 5: equipVer = "CardioSeven"; break;
case 6: equipVer = "CardioLoop"; break;
case 7: equipVer = "CardioNet Client"; break;
case 8: equipVer = "CardioNet Server"; break;
case 9: equipVer = "CardioSmart"; break;
}
return equipVer;
}
public String Motivo(String motivo){
String motivos = "";
switch(cbMotivo.getSelectedIndex())
{
case 0: motivos = "000 - Instalação/Reinstalação"; break;
case 1: motivos = "001 - Configuração"; break;
case 2: motivos = "002 - BackUp"; break;
case 3: motivos = "003 - Dific. em utilizar sistema"; break;
case 4: motivos = "004 - Erro de sistema"; break;
case 5: motivos = "005 - Informações"; break;
case 6: motivos = "006 - Transferência indevida"; break;
case 7: motivos = "007 - Dúvidas Ass.Tecnica"; break;
case 8: motivos = "008 - Tratamento interno"; break;
case 9: motivos = "009 - Transferência Interna"; break;
case 10: motivos = "010 - Cliente solicita retorno"; break;
case 11: motivos = "011 - Retorno de contato"; break;
}
return motivos;
}