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>