Como observaran en el video demostrativo se produce un error de calculo porque en la asignacion del segundo valor habia vuelto a escribir el primero, una vez comprobado se rectifica sobre la marcha.
Abrimos Eclipse y seleccionamos nuevo proyecto, dentro del proyecto pulsamos con el boton derecho y seleccionamos Nuevo/Otras/Swin Designer/JFrame, indicamos el nombre y pasamos al codigo.
Bajo el codigo tendremos dos pestañas Source (codigo) y Design (diseño), pulsamos diseño y veremos la parte visual, para poder poner los controles a nuestro antojo, pulsamos con el boton derecho en la ventana en modo diseño /setLayout/absoluteLayout.
Despues insertamos tres controles Jlabel, dos JTextField y un JButton, camiandoles las propiedades de texto (para que aparezcan reflejadas en la ventana) y el nombre a utilizar como referencia en el codigo.
Señalamos el boton y en propiedades marcamos action performer y pasamos al codigo que se ejecuta al pulsar boton, el codigo sera:
btnMultiplica.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int i1=Integer.parseInt(textField1.getText());
int i2=Integer.parseInt(textField2.getText());
int multiplica=i1*i2;
lblResultado.setText(String.valueOf(multiplica));
}
});
Con getText obtenemos el valor introducido en el textField, con integer.parseInt lo transformamos en numero para poder operar.
Con setText mostramos en el label el valor de la operacion convertido a string (cadena de caracteres) para poder mostrarlo en el Jlabel.
Para que el lblResultado muestre el valor tenemos que definirlo como atributo de clase, lo señalamos y marcamos en la parte de propiedades el boton convert Local to Field (se ve claro en el video).
El codigo completo de la aplicacion es:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Multiplica extends JFrame {
private JPanel contentPane;
private JTextField textField1;
private JTextField textField2;
private JLabel lblResultado;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Multiplica frame = new Multiplica();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Multiplica() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("Introduce Importe");
lblNewLabel.setBounds(23, 11, 109, 14);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("Introduce Importe");
lblNewLabel_1.setBounds(23, 54, 94, 14);
contentPane.add(lblNewLabel_1);
textField1 = new JTextField();
textField1.setBounds(160, 11, 86, 20);
contentPane.add(textField1);
textField1.setColumns(10);
textField2 = new JTextField();
textField2.setBounds(160, 54, 86, 20);
contentPane.add(textField2);
textField2.setColumns(10);
lblResultado = new JLabel("Resultado");
lblResultado.setBounds(241, 117, 61, 14);
contentPane.add(lblResultado);
JButton btnMultiplica = new JButton("Multiplica");
btnMultiplica.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int i1=Integer.parseInt(textField1.getText());
int i2=Integer.parseInt(textField2.getText());
int multiplica=i1*i2;
lblResultado.setText(String.valueOf(multiplica));
}
});
btnMultiplica.setBounds(99, 113, 89, 23);
contentPane.add(btnMultiplica);
}
}