lunes, 11 de abril de 2011

TPOO 9 : Eventos, Errores y Excepciones(Código)

Hi there.

En este post explicaré los eventos, errores y excepciones con los que cuenta la codificación de mi programa.

Eventos:

Todos los eventos que utilizo en mi programa forman parte de el login y la interfaz gráfica(proximamente).
Estos van desde JButtons, RadioButtons, y pienso agregar KeyEvents para cambiar de campo con el Tabulador.

JButton: Lo uso en el login para el botón submit, para mandar la información y compararla con la base de datos. Proximamente la GUI tendrá también botones para sus diversas funciones.
Un ejemplo de un JButton en mi código es:

private JButton submitButton = new JButton();
submitButton.setText("Submit");
submitButton.setBounds(new Rectangle(135, 475, 100, 25));
mainPanel.add(submitButton, null); 
submitButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
         submitButton_actionPerformed(e);
    }
 });
private void submitButton_actionPerformed(ActionEvent e) {
//...Aqui defino lo que se hace al presionar el boton submit
}

Ya que el código del método submitButton_actionPerformed era demasiado extenso, no lo coloqué aquí, pero se entiende la como definí el Botón, y le asigne un escuchador para que tuviera un evento.

RadioButton

Los RadioButtons en mi proyecto fueron algo dificiles de aplicar a como quería, ya que al cambiar de uno a otro, quería que la información requerida fuera distinta. Esto lo logre usando setVisible, para cuando se selecciona un RadioButton, dependiendo de cual sea, oculte lo que no es necesario para el tipo de usuario seleccionado.
Para el funcionamiento tuve que crear un RadioButtonGroup, y asignarle un escuchador, como se aprecia en el código:
private JRadioButton adminRButton = new JRadioButton();
private JRadioButton guestRButton = new JRadioButton();
adminRButton.setText("Administrator");
adminRButton.setBounds(new Rectangle(140, 45, 85, 20));
guestRButton.setText("Guest");
guestRButton.setBounds(new Rectangle(140, 75, 85, 20));
guestRButton.setSelected(true);
ButtonGroup group = new ButtonGroup();
group.add(adminRButton);
group.add(guestRButton);
adminRButton.addActionListener(this);
guestRButton.addActionListener(this);
adminRButton.setActionCommand("Admin");
guestRButton.setActionCommand("Guest");      
passwordField.setActionCommand(OK);
passwordField.addActionListener(this); 
public void actionPerformed(ActionEvent e){
            String loginType = e.getActionCommand();
            this.loginDefault = loginType;
     idTextArea.requestFocusInWindow();
            if(loginType == "Admin"){
  
  passwordField.setFocusable(true);
                passwordLabel.setVisible(true);
                passwordField.setVisible(true);
                loginTypeLabel.setText(loginType+" Login: ");
                userLabel.setText(loginType+" ID:");
                System.out.println(loginType);
            }
            else{
                userLabel.setText(loginType+" ID:");
                loginTypeLabel.setText(loginType+" Login: ");
                passwordLabel.setVisible(false);
                passwordField.setVisible(false);
                System.out.println(loginType);
            }
    }

Excepciones:

Las excepciones que tengo en mi proyecto son en su mayoría en la base de datos, ya que al no colocar cada conexión, statement, y query dentro de un bloque try-catch, me marcaba error a la hora de compilar.

Un ejemplo de su uso en mi proyecto es el siguiente pedazo de código:
protected boolean deleteGuest(String guestID){
  try{
   Connection con = DriverManager.getConnection(url, user, password);
   stmt = con.createStatement();
   stmt.executeQuery("USE DB");
   stmt.executeUpdate("DELETE FROM Guests WHERE GuestID = '"+guestID+"'"); 
   con.close();
   return true;
  }catch(Exception e){
   e.printStackTrace();
   return false;
  }
        }

Errores:

La mayoría de los errores que se me ha presentado han sido en la base de datos, al eliminar un huésped cuyo GuestID no existe, al agregar dos veces un huésped con el mismo GuestID y otros más. Para esto pienso añadir validaciones para arreglar el problema o más bien evitar que suceda algo que pueda arruinar la base de datos y el sistema mismo.


Estos son algunos ejemplos de la utilización de eventos, errores y excepciones en mi proyecto, aunque pienso agregar más por el momento es todo.

Saludos.

No hay comentarios:

Publicar un comentario