Programando los controles.
Asociamos código a cada botón:
- pinchamos btnPerimetro con el botón derecho del mouse; se abre menú
- seleccionamos el 4º elemento, Events - Action - actionPerformed[...]
- esto generará el encabezamiento de una nueva función en el programa:
private void btnPerimetroActionPerformed(java.awt.event.ActionEvent evt) {
}
- escribimos dentro de esta función la captura de los datos desde los campos de texto:
private void btnPerimetroActionPerformed(java.awt.event.ActionEvent evt) {
int lado=Integer.parseInt(txtLado.getText()); // obtengo el dato lado
int base=Integer.parseInt(txtBase.getText()); // obtengo el dato base
// estas instrucciones las copié de la guía 9 que entregó la profe
double perim=2*lado+base; // defino variable perim y calculo el perímetro
lblPerimetro.setText(String.valueOf(perim)); // cargo en una etiqueta el valor calculado
// también copiado de la guía 9
}
- pinchamos btnArea con el botón derecho del mouse; se abre menú
- seleccionamos el 4º elemento, Events - Action - actionPerformed[...]
- esto generará el encabezamiento de una nueva función en el programa:
private void btnAreaActionPerformed(java.awt.event.ActionEvent evt) {
}
- escribimos dentro de esta función la captura de los datos desde los campos de texto:
private void btnPerimetroActionPerformed(java.awt.event.ActionEvent evt) {
int lado=Integer.parseInt(txtLado.getText()); // obtengo el dato lado
int base=Integer.parseInt(txtBase.getText()); // obtengo el dato base
double area=(base/2)*Math.sqrt((lado*lado)-((base*base)/4)); // defino variable area y calculo el área
lblArea.setText(String.valueOf(area)); // cargo en una etiqueta el valor calculado
}
Finalmente:
Lo de habilitar los botones cuando haya valores cargados, lo hice testeando la pérdida de foco. No sé si hay otra manera. Es lo que probé el fin de semana haciendo la guía 9 (sí, fue una indirecta):
- pinchamos txtBase (el segundo campo de texto) con el botón derecho del mouse; se abre menú
- seleccionamos Events - Focus - focusLost[...]
- esto generará una nueva función:
private void txtBaseFocusLost(java.awt.event.FocusEvent evt) {
}
- obtenemos los valores de los campos de texto y testeamos si están cargados o no:
private void txtBaseFocusLost(java.awt.event.FocusEvent evt) { // cuando abandona el segundo campo
int lado=Integer.parseInt(txtLado.getText()); // obtengo el dato lado
int base=Integer.parseInt(txtBase.getText()); // obtengo el dato base
if((lado>0)&&(base>0)){ // si ambos valores son mayores que cero
btnPerimetro.setEnabled(true); // habilito los botones
btnArea.setEnabled(true);
}
}
No hay comentarios:
Publicar un comentario