Java + Swing 009. Modo diseño en NetBeans. Uso básico de Métodos, Eventos, Control de Excepciones, Conversión de tipo de datos y jCheckBox.

Ejercicio: Realizar un pequeño programa que permite la conversión de temperatura entre Fahrenheit y Celsius.
En el diseño vemos con numeración en rojo el objeto y la referencia del nombre de variable que le damos para adaptarse a los métodos que utilizaremos.
Diseño del formulario utilizando JFrame.
Como elementos utilizamos “Etiquetas”, “Botón”, “jCheckBox” y “Campos de Texto”.
Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho y “Cambiar nombre de variable…”. Se puede usar la que se ajuste al código de más abajo. Los campos de texto para resultados se puede indicar como deshabilitado, desmarcando “enabled” en “Properties o Propiedades” de modo diseño.
Observación: Tomar en cuenta que hay que utilizar las importaciones “import”, básico para utilizar ciertos métodos y objetos. El “setLocationRelativeTo(null)” sirve para centrar el formulario.
Creamos los métodos siguientes en el apartado “Fuente”. Estos métodos utilizan conversiones de tipos de datos, controles de excepciones y demás para controlar lo mejor posible el resultado.
Código Java
public void celsiusFahrenheit(){
if (this.jCheckBox1.isSelected()) {
this.jCheckBox2.setEnabled(false);
this.fahrenheit.setEnabled(false);
this.fahrenheit.setText(null);
}
else{
this.jCheckBox2.setEnabled(true);
this.fahrenheit.setEnabled(true);
}

}

public void fahrenheitCelsius(){
if (this.jCheckBox2.isSelected()) {
this.jCheckBox1.setEnabled(false);
this.celsius.setEnabled(false);
this.celsius.setText(null);
}
else{
this.jCheckBox1.setEnabled(true);
this.celsius.setEnabled(true);
}

}
public void calcular(){
if(this.jCheckBox1.isSelected()){
if (this.celsius.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "No hay datos...");
}
else{
try {
float celsiusNum = Float.parseFloat(this.celsius.getText());
float fahrenheitNum = ((celsiusNum * 9) / 5) + 32;
this.resultado.setText(String.valueOf(fahrenheitNum + " °F"));

} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Se espera dato numérico...");
}
}

}
if (this.jCheckBox2.isSelected()){
if (this.fahrenheit.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "No hay datos...");
}
else{
try {
float fahrenheitNum = Float.parseFloat(this.fahrenheit.getText());
float celsiusNum = ((fahrenheitNum - 32) * 5) / 9;
this.resultado.setText(String.valueOf(celsiusNum + " °C"));

} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Se espera dato numérico...");
}
}

}
}

public void limpiar(){
this.jCheckBox1.setSelected(false);
this.jCheckBox2.setSelected(false);
this.resultado.setText(null);
this.celsius.setText(null);
this.fahrenheit.setText(null);
this.jCheckBox2.setEnabled(true);
this.fahrenheit.setEnabled(true);
this.jCheckBox1.setEnabled(true);
this.celsius.setEnabled(true);
}
Utilizamos el evento “ActionPerformed” para llamar los métodos desde los botones en este caso “Calcular” y “Limpiar”. Para los jCheckBox también utilizamos el evento “ActionPerformed”. Para utilizar un “Evento” hacemos clic derecho sobre el objeto y seleccionamos “Eventos” de la lista utilizamos la que podamos aplicar al objeto. En la lista de evento vemos los comentarios especificando a que objetos se aplican.
Código Java
    private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {
celsiusFahrenheit();//Evento ActionPerformed para jCheckBox1
}

private void jCheckBox2ActionPerformed(java.awt.event.ActionEvent evt) {
fahrenheitCelsius();//Evento ActionPerformed para jCheckBox2
}

private void calcularActionPerformed(java.awt.event.ActionEvent evt) {
calcular();//Evento ActionPerformed para botón calcular
}

private void limpiarActionPerformed(java.awt.event.ActionEvent evt) {
limpiar();//Evento ActionPerformed para botón limpiar
}
En la imagen como queda al ejecutar el JFrame.

No hay comentarios :

Publicar un comentario en la entrada