Download Profesor: Cifuentes Alvarez Alejandro Sigfrido Alumno: Marco

Document related concepts
no text concepts found
Transcript
INSTITUTO POLITÉCNICO NACIONAL.
ESCUELA SUPERIOR DE CÓMPUTO.
PROGRAMACION AVANZADA II
(WEB APPLICATION DEVELOPMENT)
Profesor: Cifuentes Alvarez Alejandro Sigfrido
Alumno: Marco Antonio Alonso Uicab.
Grupo: 8CM2
INTRODUCCIÓN.
El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma Java. La JFC provee facilidades para
ayudar a la gente a construir GUIs. Swing abarca componentes como botones, tablas, marcos, etc...
Las componentes Swing se identifican porque pertenecen al paquete javax.swing.
Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las interfaces gráficas con el
usuario se realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de
eventos. Usualmente, para toda componente AWT existe una componente Swing que la reemplaza, por ejemplo, la
clase Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las componentes Swing
comienza con "J").
Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de eventos AWT, el cual rige
cómo una componente reacciona a eventos tales como, eventos de teclado, mouse, etc... Es por esto, que la mayoría
de los programas Swing necesitan importar dos paquetes AWT: java.awt.* y java.awt.event.*.
Como regla, los programas no deben usar componentes pesados de AWT junto a componentes Swing, ya que los
componentes de AWT son siempre pintados sobre los de Swing. (Por componentes pesadas de AWT se entiende
Menu, ScrollPane y todas las componentes que heredan de las clases Canvas y Panel de AWT).
En esta práctica también se hace uso de MouseEvents que se producen cuando el usuario efectúa un movimiento
con el ratón o haga un click.
Desarrollo.
Para utilizar la clase swing se debe escribir la siguiente línea de código, javax.swing.*, se crearon 4 clases:
Archivo. En la cual se muestra la hora y se puede abrir un archivo para editarlo y guardarlo con los cambios
efectuados.
Audio. Permite abrir un archivo de audio y reproducirlo.
Foto. Permite abrir una imagen y la muestra en la pantalla.
MiCanvas3. Permite dibujar a mano alzada dentro del applet.
Archivo.java
import java.applet.*;
import java.awt.*;
import java.awt.Graphics;
import java.awt.event.*;
import java.io.Reader;
import java.io.*;
import java.util.*;
import java.text.DateFormat;
import javax.swing.*;
public class Archivo extends JApplet implements Runnable, ActionListener{
int hora, minutos, segundos;
Thread hilo=null;
Font fuente;
String horaActual="00:00:00";
BorderLayout borderLayout1 = new BorderLayout();
FlowLayout flowLayout1 = new FlowLayout();
JFrame f;
JPanel panel1, panel2;
JLabel l1;
JButton abrir, guardar;
JTextArea ta;
BufferedReader br;
PrintWriter pw;
FileDialog fd, fd2;
String arch, ruta, texto;
public void paint(Graphics g)
{
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
DateFormat dateFormatter=DateFormat.getDateInstance(DateFormat. FULL,
Locale.getDefault());
String fecha=dateFormatter.format(date);
g.setFont(fuente);
//g.setColor(Color.black);
g.drawString(fecha,14,30);
//Dibujar un rectángulo alrededor del contenedor
g.draw3DRect(1, 1, getSize().width-3, getSize().height-3, false);
//Establecer la Fuente
g.setFont(fuente);
//mostrar la Hora
g.drawString(horaActual,14,50);
}
public void init(){
setBackground(Color.white);
fuente= new Font("Verdana", Font.BOLD, 20);
f= new JFrame("Archivos");
panel1= new JPanel(new GridLayout(1,3));
panel2=new JPanel();
l1=new JLabel("Archivo:", 2);
abrir= new JButton("Abrir");
guardar= new JButton("Guardar");
abrir.addActionListener(this);
guardar.addActionListener(this);
ta= new JTextArea();
panel1.add(l1);
panel1.add(abrir);
panel1.add(guardar);
panel2.add(ta);
this.add(panel1, BorderLayout.SOUTH);
this.add(panel2, BorderLayout.EAST);
//getContentPane().add("North",panel1);
//panel1.setSize(350,50);
//getContentPane().add("East",panel2);
//panel2.setSize(100,100);
}
public void start(){
hilo=new Thread(this, "Reloj");
hilo.start();
}
public void run() {
Thread hiloActual = Thread.currentThread();
while (hilo==hiloActual) {
//obtener la hora actual
Calendar cal = Calendar.getInstance();
Date hora = cal.getTime();
DateFormat df = DateFormat.getTimeInstance();
horaActual = df.format(hora);
repaint();
try
{
Thread.sleep(1000);
}
catch (InterruptedException e){}
}
}
public void stop()
{
hilo = null;
}
public void actionPerformed(ActionEvent e){
String s=e.getActionCommand();
if(s.equals("Abrir")){
fd=new FileDialog(new Frame(), "Abrir",FileDialog.LOAD);
fd.setVisible(true);
arch=fd.getFile();
ruta=fd.getDirectory();
try{
br=new BufferedReader(new FileReader(ruta+arch));
ta.setText("");
while((texto=br.readLine())!=null)
ta.append(texto+" \n");
br.close();
}catch(IOException ioe){}
}
if(s.equals("Guardar")){
fd2=new FileDialog(new Frame(), "Guardar",FileDialog.SAVE);
fd2.setVisible(true);
arch=fd2.getFile();
ruta=fd2.getDirectory();
try{
pw=new PrintWriter(new FileWriter(ruta+arch));
pw.print(ta.getText());
pw.close();
}catch(IOException ioe){}
}
}
public static void main(String []args){
new Archivo();
}
}
Audio.java
//Audio
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class Audio extends JApplet{
AudioClip sonido;
public void init(){
sonido=getAudioClip(getCodeBase(),"Fuego11.wav");//busca el .class
}
public void paint(Graphics g){
g.drawString("Prueba de audio ... ",25, 25);
}
public void start(){
sonido.loop();
}
public void stop(){
sonido.stop();
}
}
Foto.java
//Imagenes
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class Foto extends JApplet{
Image Img;
public void init(){
Img=getImage(getDocumentBase(),"Foto.jpg");//ruta y extension, busca el archivo
}
public void paint(Graphics g){
g.drawImage(Img, 25, 25, this);
}
}
MiCanvas3.java
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class MiCanvas3 extends Applet implements MouseListener, MouseMotionListener{
int uX, uY;
public MiCanvas3() {
setBackground(Color.white);
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
//interface MouseListener
public void mousePressed(MouseEvent ev) {
uX=ev.getX();
uY=ev.getY();
}
public void mouseExited(MouseEvent event) {}
public void mouseReleased(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
public void mouseEntered(MouseEvent event) {}
//interface MouseMotionListener
public void mouseDragged(MouseEvent ev) {
int x = ev.getX();
int y = ev.getY();
Graphics g=getGraphics();
g.drawLine(uX, uY, x, y);
uX=x; uY=y;
g.dispose();
}
public void mouseMoved(MouseEvent event) {}
}
Se muestran en una página web con el siguiente código.
Web.html
<html>
<head>
<title>Applet</title>
</head>
<body>
<applet code=Archivo.class width=1000 height=300> </applet>
<applet code=Audio.class width=500 height=100> </applet>
<applet code=Foto.class width=500 height=100> </applet>
<applet code=MiCanvas3.class width=500 height=300> </applet>
<!--contenido-->
</body>
</html>