Post on 14-Jun-2015
description
INSTITUTO TECNOLOGICO SUPERIOR FELIPE
CARRILLO PUERTO
ING. SISTEMAS COMPUTACIONALES.
TOPICOS AVANZADOS DE PROGRAMACION
MARDOQUEO MATEO PEDRO
DOCENTE:
DOC. NIELS ARANA CUEVA
TAREA:
INFORME TECNICO U1
4º SEMESTRE
GRUPO A
FECHA:
06-MARZO-2014.
INTRODUCCION En esta unidad veremos como programar con eventos, a través de botones,
donde un evento es la respuesta a una acción provocada por el usuario o el
sistema, con el objetivo de agilizar y mejorar el diseño gráfico de algún
programa como veremos a continuación.
PRACTICA CALCULADORA
1. Se crea una clase Main la cual llamara a otra clase que se llama
VentanaCalculadora la cual contiene los códigos del evento.
package org.mardo.java.calculadora;
public class Main {
public static void main(String[] args) {
Calcu calculadora = new Calcu ();
calculadora.setVisible(true);
}
}
2. Se crea otra clase llamada Calcu.
package org.mardo.java.calculadora;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.border.EmptyBorder;
public class Calcu extends JFrame {
private static final long serialVersionUID = 1583724102189855698L;
JTextField pantalla;
double resultado;
//para guardar la operacion a realizar
String operacion;
// Los paneles donde colocaremos los botones
JPanel panelNumeros, panelOperaciones;
// Indica si estamos iniciando o no una operación
boolean nuevaOperacion = true;
// Constructor. Crea los botones y componentes de la calculadora
public Calcu() {
super();
setSize(250, 300);
setTitle("Calcu MARDO");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setResizable(false);
// Aquí se dibuja sobre el panel
JPanel panel = (JPanel) this.getContentPane();
panel.setLayout(new BorderLayout());
pantalla = new JTextField("0", 20);
pantalla.setBorder(new EmptyBorder(4, 4, 4, 4));
pantalla.setFont(new Font("Arial", Font.BOLD, 25));
pantalla.setHorizontalAlignment(JTextField.RIGHT);
pantalla.setEditable(false);
pantalla.setBackground(Color.WHITE);
panel.add("North", pantalla);
//Se crea el panel de los numeros
panelNumeros = new JPanel();
panelNumeros.setLayout(new GridLayout(4, 3));
panelNumeros.setBorder(new EmptyBorder(4, 4, 4, 4));
for (int n = 9; n >= 0; n--) {
nuevoBotonNumerico("" + n);
}
nuevoBotonNumerico(".");
panel.add("Center", panelNumeros);
// Aquí se crea el panes de los botones con sus respectivas operaciones
panelOperaciones = new JPanel();
panelOperaciones.setLayout(new GridLayout(6, 1));
panelOperaciones.setBorder(new EmptyBorder(4, 4, 4, 4));
nuevoBotonOperacion("+");
nuevoBotonOperacion("-");
nuevoBotonOperacion("*");
nuevoBotonOperacion("/");
nuevoBotonOperacion("=");
nuevoBotonOperacion("CE");
panel.add("East", panelOperaciones);
validate();
}
private void nuevoBotonNumerico(String digito) {
JButton btn = new JButton();
btn.setText(digito);
btn.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent evt) {
JButton btn = (JButton) evt.getSource();
numeroPulsado(btn.getText());
}
});
panelNumeros.add(btn);
}
private void nuevoBotonOperacion(String operacion) {
JButton btn = new JButton(operacion);
btn.setForeground(Color.RED);
btn.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent evt) {
JButton btn = (JButton) evt.getSource();
operacionPulsado(btn.getText());
}
});
panelOperaciones.add(btn);
}
private void numeroPulsado(String digito) {
if (pantalla.getText().equals("0") || nuevaOperacion) {
pantalla.setText(digito);
} else {
pantalla.setText(pantalla.getText() + digito);
}
nuevaOperacion = false;
}
private void operacionPulsado(String tecla) {
if (tecla.equals("=")) {
calcularResultado();
} else if (tecla.equals("CE")) {
resultado = 0;
pantalla.setText("");
nuevaOperacion = true;
} else {
operacion = tecla;
if ((resultado > 0) && !nuevaOperacion) {
calcularResultado();
} else {
resultado = new Double(pantalla.getText());
}
}
nuevaOperacion = true;
}
private void calcularResultado() {
if (operacion.equals("+")) {
resultado += new Double(pantalla.getText());
} else if (operacion.equals("-")) {
resultado -= new Double(pantalla.getText());
} else if (operacion.equals("/")) {
resultado /= new Double(pantalla.getText());
} else if (operacion.equals("*")) {
resultado *= new Double(pantalla.getText());
}
pantalla.setText(" " + resultado);
operacion = " ";
}
}
PRACTICA HOLA Y ADIOS
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Igu extends Frame{
// Se crean los botones que generaran una acción
Button hola, adios;
TextField campo_texto;
Igu (String nombre){
super(nombre);
hola= new Button("1");
adios= new Button("2");
campo_texto= new TextField(12);
FlowLayout diseñador= new FlowLayout();
setLayout(diseñador);
JLabel label = new JLabel("Example JFrame");
add(label);
add(hola);
add(adios);
add(campo_texto);
holaa h=new holaa();
hola.addActionListener(h);
adioss a=new adioss();
adios.addActionListener(a);
Cerrar_ventana cerrar=new Cerrar_ventana();
this.addWindowListener(cerrar);
}
// Al presionar el botón 1 generara el evento “Hola”
class holaa implements ActionListener{
public void actionPerformed(ActionEvent e){
String resh ="Hola";
campo_texto.setText(resh);
}
}
//Al presionar el botón 2 generara el evento Adios
class adioss implements ActionListener{
public void actionPerformed(ActionEvent e){
String resa ="Adios";
campo_texto.setText(resa);
}
}
class Cerrar_ventana extends WindowAdapter implements
WindowListener{
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
}
}
class Principal{
public static void main (String []args){
Igu interfaz=new Igu("Saludos");
interfaz.setSize(300,100);
interfaz.setVisible(true);
}
}
CONCLUSION Los eventos en una programación, permite al programador diseñar un interfaz
gráfico como el usuario quiere ver su programa al finalizar la programación.