Você está na página 1de 15

Instituto Tecnolgico Superior

Zacatecas Sur
FUNDAMENTOS DE INVESTIGACIN

Portafolio de Evidencias I unidad

Maestro: Ing. Raudel Arteaga Tovar.

Presenta: Yimpey Nio Vega

Tlaltenango de Snchez Romn., Zac. 15 de Abril de 2013.

Mediante un clic en el rea roja se dibujan de forma automtica mltiples lneas en diferentes colores, tamaos y ngulos.

import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class lineas extends Applet implements MouseListener,MouseMotionListener{ public void init(){ addMouseListener(this); addMouseMotionListener(this); setBackground(new Color(255,0,0)); //g.drawString("Andas en mi territorio",0,0); } public void mouseClicked(MouseEvent m){ int x1,y1,x2,y2; int c1, c2, c3; Graphics g=getGraphics(); for(int i=1;i<=100;i++){ c1=(int)(255*Math.random()+1); c2=(int)(255*Math.random()+1); c3=(int)(255*Math.random()+1); x1=(int)(500*Math.random()+1); y1=(int)(500*Math.random()+1); x2=(int)(500*Math.random()+1); y2=(int)(500*Math.random()+1); g.setColor(new Color(c1,c2,c2)); g.drawLine(x1,y1,x2,y2);

} } public void mouseEntered(MouseEvent m){} public void mousePressed(MouseEvent m){} public void mouseExited(MouseEvent m){} public void mouseReleased(MouseEvent m){} }

Una de las cosas interesantes de este programa es lautilizacin de metodos abstractos para la utilizacin de un evento en especial es decir, aunque solo utilizamos un evento que nos ayudaba a reconocer cuando dabamos un clic en la pantalla fue necesario utilizas todos los metodos de eventos del mouse.

Este applet nos permite sumar 2 nmeros cualesquiera. Utiliza 3 botones: Suma=permite realizar la operacin aritmtica; Limpiar=permite limpiar los campos donde introducimos los nmeros y el botn Ocultar frame=permite ocultar la interfaz cabe aclarar que este botn se activa hasta el momento en que se realiza la primer suma.

//Importar Librerias import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.applet.Applet;

//Declarar componentes y contenedores public class AppletSuma2 extends JApplet{ public static JLabel eti1=new JLabel("Dame x---- "); public static JLabel eti2=new JLabel("Dame y---- "); public static JLabel eti3=new JLabel("La suma es"); public static JTextField caja1=new JTextField(5); public static JTextField caja2=new JTextField(5); public static JTextField caja3=new JTextField(10); public static JButton boton1=new JButton("Sumar"); public static JButton boton2=new JButton("Limpiar"); public static JButton boton3=new JButton("Ocultar Frame"); public Container ventana=getContentPane(); public void init(){ //configurar componentes y contenedores ventana.setSize(150,200); ventana.setLayout(new FlowLayout()); //montar los componentes en el contenedor ventana.add(eti1); ventana.add(caja1); ventana.add(eti2); ventana.add(caja2); ventana.add(eti3);

ventana.add(caja3); ventana.add(boton1); ventana.add(boton2); ventana.add(boton3); boton3.setEnabled(false);//se inactiva el boton3 ventana.setVisible(true); //Escuchador de mouse sobre el raton boton1.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ int x,y,suma=0; //obtener los valores de x y desde las cajas x=Integer.parseInt(caja1.getText()); y=Integer.parseInt(caja2.getText()); suma=x+y; //Mostrar la suma en la caja3 caja3.setText(String.valueOf(suma)); boton3.setEnabled(true); } }); boton2.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ caja1.setText(""); caja2.setText(""); caja3.setText(""); } }); ventana.setVisible(true); boton3.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ ventana.setVisible(false); } }); } }

Lo interesante fue la creacin de un contenedor y sus componentes as como una vez ms la utilizacin de eventos del mouse, la activacin o desactivacin de un botn tambin es de mucha importancia. Una cosa tambin de mucho aprendizaje fue la utilizacin de cajas de textos, la conversion de datos String a Int, la operacin aritmtica y la presentacin de este resultado nuevamente en una caja de texto pero en String.

Programa idntico al anterior excepto en su interfaz, es decir, el anterior es utilizado a travs de applets pero este tiene una interfaz de Ventanas de Windows.

//Importar Librerias import java.awt.*; import java.awt.event.*; import javax.swing.*;

//Declarar componentes y contenedores public class AppletSuma3 extends JFrame{ public static JLabel eti1=new JLabel("Dame x"); public static JLabel eti2=new JLabel("Dame y"); public static JLabel eti3=new JLabel("La suma es"); public static JTextField caja1=new JTextField(5); public static JTextField caja2=new JTextField(5); public static JTextField caja3=new JTextField(10); public static JButton boton1=new JButton("Sumar"); public static JButton boton2=new JButton("Limpiar"); public static JButton boton3=new JButton("Salir"); //public Container ventana=getContentPane(); public static JFrame ventana=new JFrame("SUMA DE 2 NUMEROS"); public void muestraVentana(){ /*container ventana=getContentPane();*/ //configurar componentes y contenedores ventana.setSize(150,200); ventana.setLayout(new FlowLayout()); //montar los componentes en el contenedor ventana.add(eti1); ventana.add(caja1); ventana.add(eti2); ventana.add(caja2); ventana.add(eti3); ventana.add(caja3); ventana.add(boton1);

ventana.add(boton2); ventana.add(boton3); boton3.setEnabled(false);//se inactiva el boton3 ventana.setVisible(true); //Escuchador de mouse sobre el raton boton1.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ int x,y,suma=0; //obtener los valores de x y desde las cajas x=Integer.parseInt(caja1.getText()); y=Integer.parseInt(caja2.getText()); suma=x+y; //Mostrar la suma en la caja3 caja3.setText(String.valueOf(suma)); boton3.setEnabled(true); } }); boton2.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ caja1.setText(""); caja2.setText(""); caja3.setText(""); } }); ventana.setVisible(true); boton3.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ ventana.setVisible(false); } }); } public static void main(String []args){ AppletSuma3 obj=new AppletSuma3(); obj.muestraVentana(); } }

Es interesante ver como con un simple cambio, la interfaz puede cambiar tanto, es decir, en vez de utilizar un JApplet simplemente cambiamos por un JFrame.

Programa que enva mensajes acerca de lo que el mouse est haciendo. Adems que nos permite dibujar lneas a mano alzada tal y como se hace en Paint con la pluma.

import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class Raton extends Applet implements MouseListener, MouseMotionListener{ public static String msg=""; public static int uX,uY; public void init(){ Graphics g=getGraphics(); addMouseListener(this); addMouseMotionListener(this); setBackground(new Color(255,0,0)); g.setColor(new Color(0,0,255)); } public void mousePressed (MouseEvent e) { uX=e.getX(); uY=e.getY(); repaint(); msg="Me presionas"; } public void mouseClicked (MouseEvent e){ repaint(); msg="Me presionas"; } public void mouseDragged(MouseEvent e){ repaint(); msg="Me arrastras"; int x=e.getX(); int y=e.getY(); Graphics g=getGraphics(); g.drawLine(uX,uY,x,y); uX=x; uY=y; g.dispose();

public void paint(Graphics g){ g.setColor(new Color(0,234,255)); g.drawString(msg,100,100); } public void mouseEntered (MouseEvent m) { repaint(); msg="Me invades"; } public void mouseExited (MouseEvent m) { repaint(); msg="me sacas"; } public void mouseReleased (MouseEvent m) { repaint(); msg="Me sueltas"; } public void mouseMoved(MouseEvent m){ repaint(); msg="Me mueves"; } public void stop(){ } }

Una de las cosas interesantes de este programa fue el hecho de atrapar las coordenadas del puntero del mouse y asignrselas a una variable que se requera para indicar el constante dibujos de puntos que en su conjunto formaba la lnea. Adems es interesante comprender la utilizacin de los mtodos abstractos con cdigo en el interior, lo interesante de estos es la forma en que se invocan automticamente dependiendo de lo que hace el mouse.

Este programa permite el desplazamiento de un cuadro dentro de una pantalla que delimita su rea de movimiento. Originalmente estaba diseado para que al tocar los extremos del rea regresara automticamente al centro. Sin embargo yo lo modifique para que al tocar un extremo lateral, reapareciera en su mismo eje horizontal pero al otro lado y lo mismo en sentido vertical. Algo as como hacia el pacman cuando entraba en la puerta izquierda y sala en la derecha y en la puerta de abajo y sala en la de arriba.

import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class applet1 extends Applet implements KeyListener{ public static int x1=250, y1=250, x2=50, y2=50; public void init(){ addKeyListener(this); requestFocus(); } public void keyPressed(KeyEvent k){ int key=k.getKeyCode(); switch(key){ case KeyEvent.VK_RIGHT: x1=x1+10; break; case KeyEvent.VK_LEFT: x1=x1-10; break; case KeyEvent.VK_UP: y1=y1-10; break; case KeyEvent.VK_DOWN: } repaint(); } public void keyReleased(KeyEvent k){ } public void keyTyped(KeyEvent k){ y1=y1+10; break;

} public void paint(Graphics g){ setBackground(new Color(243,50,100)); g.setColor(Color.yellow); g.drawRect(x1,y1,x2,y2); g.fillRect(x1,y1,x2,y2); if(x1<=0){ x1=450; } if(x1>=500){ x1=0; } if(y1<=0){ y1=450; } if(y1>=500){ y1=0; } /*if((x1==0)||(y1==0)||(x1==500)||(y1==500)){ x1=250; y1=250; x2=50; y2=50; }*/ } public void stop(){ } }

En esta pantalla, desplac el cuadro hacia abajo y apareci arriba.

En esta pantalla, desplac el cuadro hacia la izquierda y apareci a la derecha.

Es interesante ver cmo se pueden utilizar los eventos del teclado, en especial, las teclas de movimientos representadas a travs de cdigo, y realizar incrementacin de posiciones con el simple presionar de dichas teclas.

Você também pode gostar