Antes de tudo quero informar-lhes que sou iniciante em java e que esse é o primeiro sistema que desenvolvo.
vejam o código abaixo:
package Grafico;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.*;
import Conexao.Conectar;
public class TelaQuartos extends Janela implements ActionListener {
public Connection cn = (Connection) Conectar.getConexao();
PreparedStatement pstq;
java.sql.ResultSet rs;
JLabel tiposDeQuartos;
JLabel txtCodigo;
JLabel txtDescricao;
JLabel txtNumero;
JLabel txtValor;
JLabel txtTipo;
String[] tipoDeQuarto = {"", "Clássico - Vista Mar", "Clássico - Vista Resort", "Suite - Vista Mar", "Suite - Vista Resort", "Suite Grande Real"};
JComboBox tipoQuarto = new JComboBox(tipoDeQuarto);
int maxVisibleRows = 5;
JTextField campoCodigo;
JTextArea campoDescricao;
JTextField campoNumero;
JTextField campoValor;
JButton btSalvar;
JButton btAlterar;
JButton btExcluir;
JButton btConsultar;
JButton btLimpar;
JButton btVoltar;
public TelaQuartos(String titulo, Dimension tamanho){
super(titulo,tamanho);
getContentPane().setLayout(null);
tiposDeQuartos = new JLabel("Quartos__________________________");
tiposDeQuartos.setBounds(50, 10, 800, 60);
tiposDeQuartos.setFont(new Font("Arial", Font.ITALIC, 36));
txtCodigo = new JLabel("CÓDIGO");
txtCodigo.setBounds(50, 100, 70, 20);
txtCodigo.setFont(new Font("Arial",Font.BOLD ,15));
campoCodigo = new JTextField();
campoCodigo.setBounds(120, 97, 55, 20);
txtNumero = new JLabel("NÚMERO");
txtNumero.setBounds(210, 100, 70, 20);
txtNumero.setFont(new Font("Arial",Font.BOLD ,15));
campoNumero = new JTextField();
campoNumero.setBounds(290, 97, 55, 20);
txtTipo = new JLabel("TIPO");
txtTipo.setBounds(370, 100, 70, 20);
txtTipo.setFont(new Font("Arial",Font.BOLD ,15));
tipoQuarto.setBounds(420, 96, 200, 20);
txtValor = new JLabel("VALOR R$");
txtValor.setBounds(50, 130, 80, 20);
txtValor.setFont(new Font("Arial",Font.BOLD ,15));
campoValor = new JTextField();
campoValor.setBounds(130, 128, 55, 20);
txtDescricao = new JLabel("DESCRIÇÃO");
txtDescricao.setBounds(50, 160, 90, 20);
txtDescricao.setFont(new Font("Arial",Font.BOLD ,15));
campoDescricao = new JTextArea();
campoDescricao.setBounds(150, 157, 350, 150);
btSalvar = new JButton("Salvar");
btSalvar.setBounds(160, 350, 90, 30);
btAlterar = new JButton("Alterar");
btAlterar.setBounds(270, 350, 90, 30);
btExcluir = new JButton("Excluir");
btExcluir.setBounds(380, 350, 90, 30);
btConsultar = new JButton("Consultar");
btConsultar.setBounds(550, 130, 90, 40);
btLimpar = new JButton("Limpar");
btLimpar.setBounds(550, 200, 90, 40);
btVoltar = new JButton("Voltar");
btVoltar.setBounds(550, 270, 90, 40);
getContentPane().add(tiposDeQuartos);
getContentPane().add(txtCodigo);
getContentPane().add(campoCodigo);
getContentPane().add(txtDescricao);
getContentPane().add(campoDescricao);
getContentPane().add(txtNumero);
getContentPane().add(campoNumero);
getContentPane().add(txtValor);
getContentPane().add(campoValor);
getContentPane().add(txtTipo);
getContentPane().add(tipoQuarto);
getContentPane().add(btSalvar);
getContentPane().add(btAlterar);
getContentPane().add(btExcluir);
getContentPane().add(btConsultar);
getContentPane().add(btLimpar);
getContentPane().add(btVoltar);
btVoltar.addActionListener(this);
btLimpar.addActionListener(this);
btSalvar.addActionListener(this);
}
public static void main(String[] args) {
TelaLogin.tq.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource().equals(btVoltar)){
TelaLogin.tq.dispose();
TelaLogin.tm.setVisible(true);
}
else if(e.getSource().equals(btLimpar));{
campoCodigo.setText(null);
campoDescricao.setText(null);
campoNumero.setText(null);
campoValor.setText(null);
tipoQuarto.setSelectedItem(null);
}
if(e.getSource().equals(btSalvar)){
try{
pstq = (PreparedStatement) cn.prepareStatement("insert into tela_quartos (cod_quarto, desc_quarto, num_quarto, valor_quarto, tipo_quarto) values (null, ?, ?, ?, ?);");
pstq.setString(1, campoDescricao.getText());
pstq.setString(2, campoNumero.getText());
pstq.setString(3, campoValor.getText());
pstq.setString(4, tipoDeQuarto[tipoQuarto.getSelectedIndex()]);
pstq.executeUpdate();
JOptionPane.showMessageDialog(null, "Dados cadastrados com êxito");
campoCodigo.setText(null);
campoDescricao.setText(null);
campoNumero.setText(null);
campoValor.setText(null);
tipoQuarto.setSelectedItem(null);
}catch(SQLException erroInserir){
JOptionPane.showMessageDialog(null, "Erro ao gravar informações\n" + erroInserir);
}
}
}
}
Ao tentar salvar uma incerção de dados aparece a seguinte exceção
Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: -1
at Grafico.TelaQuartos.actionPerformed(TelaQuartos.java:153)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Será que alguém pode dar um help?
Já fiz tudo que eu achei que seria ser o problema, mas não consigo fazer funcionar essa tela.
Estou usando eclipse + mysql
[]´s