El siguiente ejercicio lo encontré en uno de los blogs que frecuento, me parece una aplicación muy interesante para entender la interacción de los usuarios con la interfaz.
Aquí les dejo el blog donde pueden encontrar mas ejemplos: clic aqui
import
java.awt.*;
import
javax.swing.*;
import
java.awt.event.*;
public
class
Calculadora
extends
JFrame
implements
ActionListener{
private
JButton btn1,btn2,btn3,btn4,btn5;
private
JTextField val1,val2,resul;
//metodo donde creo y añado los controles
public
void
Controles(){
//obtener panel de contenido y establecer su esquema
Container contenedor = getContentPane();
contenedor.setLayout(
new
FlowLayout(FlowLayout.CENTER) );
//crear controles y añadir
Label lbl1 =
new
Label(
"Numero"
);
contenedor.add(lbl1);
val1 =
new
JTextField(
10
);
contenedor.add(val1);
Label lbl2 =
new
Label(
"Numero"
);
contenedor.add(lbl2);
val2 =
new
JTextField(
10
);
contenedor.add(val2);
btn1 =
new
JButton(
"+"
);
contenedor.add(btn1);
btn1.addActionListener(
this
);
btn2 =
new
JButton(
"-"
);
contenedor.add(btn2);
btn2.addActionListener(
this
);
btn3 =
new
JButton(
"x"
);
contenedor.add(btn3);
btn3.addActionListener(
this
);
btn4 =
new
JButton(
"/"
);
contenedor.add(btn4);
btn4.addActionListener(
this
);
btn5 =
new
JButton(
"Limpiar"
);
contenedor.add(btn5);
btn5.addActionListener(
this
);
resul =
new
JTextField(
10
);
contenedor.add(resul);
}
public
Calculadora(){
//titulo ventana
super
(
"Calculadora"
);
//cargo controles
Controles();
//tamaño ventana y mostrar y centrar
setSize(
380
,
150
);
setLocationRelativeTo(
null
);
//centrar
setVisible(
true
);
}
//eventos botones
public
void
actionPerformed(ActionEvent e) {
double
num1,num2,resu;
String resultado;
if
(e.getSource()==btn1) {
if
(val1.getText().equals(
""
) || val2.getText().equals(
""
)){
JOptionPane.showMessageDialog(
null
,
"Los datos Están Incompletos"
,
"Error"
,JOptionPane.ERROR_MESSAGE);
}
else
{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1+num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if
(e.getSource()==btn2) {
if
(val1.getText().equals(
""
) || val2.getText().equals(
""
)){
JOptionPane.showMessageDialog(
null
,
"Los datos Están Incompletos"
,
"Error"
,JOptionPane.ERROR_MESSAGE);
}
else
{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1-num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if
(e.getSource()==btn3) {
if
(val1.getText().equals(
""
) || val2.getText().equals(
""
)){
JOptionPane.showMessageDialog(
null
,
"Los datos Están Incompletos"
,
"Error"
,JOptionPane.ERROR_MESSAGE);
}
else
{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1*num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if
(e.getSource()==btn4) {
if
(val1.getText().equals(
""
) || val2.getText().equals(
""
)){
JOptionPane.showMessageDialog(
null
,
"Los datos Están Incompletos"
,
"Error"
,JOptionPane.ERROR_MESSAGE);
}
else
{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
try
{
resu=num1/num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
catch
(ArithmeticException ex){
JOptionPane.showMessageDialog(
null
,
"No se Puede Dividir Entre 0"
,
"Error"
,JOptionPane.ERROR_MESSAGE);
}
}
}
if
(e.getSource()==btn5){
val1.setText(
""
);
val2.setText(
""
);
resul.setText(
""
);
}
}
public
static
void
main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(
true
);
Calculadora calc =
new
Calculadora();
//Instanciamos la clase que creamos
calc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//cerrar ventana
}
No hay comentarios:
Publicar un comentario