Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Java (básico) > Como llevar una aplicacion Java a un Applet ????
-Foros de debate

Java (básico)
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Como llevar una aplicacion Java a un Applet ????
Enviado por danieln26 el día 10 de mayo de 2008

Tengo una aplicacion para el control de una camara web, trasmite el video y puedes tomar fotos y guardarlas. Pero necesito llevar esa aplicacion a Applet para poder trasmitir via web, lo que la camara capture. Pero no he podido realizar esta conversion, si alguien puede ayudarme por favor, es urgente...!!!!

Aqui les dejo el código, que les puede servir a cualquiera de uds tambien. De antemano,Gracias.

import javax.swing.*;
import javax.swing.event.*;
import javax.media.*;
import javax.media.control.*;
import javax.media.util.*;
import javax.media.cdm.CaptureDeviceManager;
import javax.media.format.*;
import javax.media.protocol.*;
import java.awt.Image;
import java.util.Vector;
import java.util.Iterator;
import javax.imageio.*;
import java.io.*;
import java.awt.image.RenderedImage;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

public class captura extends JFrame implements ActionListener {

Player player = null;
JPanel panelCam,panelBotones,panelIm;
JButton boton = null;
JButton botonSalir = null;
JButton botonGuardar = null;
ImagePanel panelImagen = null;
Image img = null;
String dispositivo = "";

public void marco() throws Exception{
boton = new JButton();
boton.setText("Capturar");
boton.setSize(100,40);
boton.addActionListener(this);
botonGuardar = new JButton();
botonGuardar.setText("Guardar");
botonGuardar.setSize(100,40);
botonGuardar.addActionListener(this);
botonSalir = new JButton();
botonSalir.setText("Salir");
botonSalir.setSize(100,40);
botonSalir.addActionListener(this);
panelCam = new JPanel();
panelBotones = new JPanel();
panelIm = new JPanel();
panelImagen = new ImagePanel();
// para saber el dispositivo hacemos CaptureDeviceManager.getDeviceList() y devuelve un vector
// con los dispositivos instalados y reconocidos
CaptureDeviceInfo dev = CaptureDeviceManager.getDevice(dispositivo);
Format[] cfmts = dev.getFormats();
RGBFormat fmt = (RGBFormat)cfmts[4];
//obtengo el locator del dispositivo
MediaLocator loc = dev.getLocator();
player = Manager.createRealizedPlayer(loc);
player.start();
// esto lo saqué del foro jmf de Sun, hay que "parar un poco la aplicacion"
Thread.sleep(1000);
Component comp;

if ((comp = player.getVisualComponent()) != null)
{
// mostramos visualmente el reproductor
panelCam.add(comp,BorderLayout.CENTER);
this.getContentPane().add(panelCam,BorderLayout.NORTH);

}

panelBotones.add(boton,BorderLayout.EAST);
panelBotones.add(botonGuardar,BorderLayout.CENTER);
panelBotones.add(botonSalir,BorderLayout.WEST);
this.getContentPane().add(panelBotones,BorderLayout.CENTER);
panelIm.add(panelImagen,BorderLayout.CENTER);
this.getContentPane().add(panelIm,BorderLayout.SOUTH);
this.setSize(350,600);
this.setVisible(true);
}


public void seleccion() throws Exception{
ActionListener al = new ActionListener()
{
public void actionPerformed(ActionEvent evt){

dispositivo = evt.getActionCommand();
System.out.println("Dispositivo seleccionado: " + dispositivo);
}
};
Vector listaDispositivos = null;
//buscamos los dispositivos instalados
listaDispositivos = CaptureDeviceManager.getDeviceList();
JFrame marcoSel = new JFrame();
JPanel panelRB = new JPanel();
Iterator it = listaDispositivos.iterator();
while (it.hasNext()){
CaptureDeviceInfo cdi = (CaptureDeviceInfo)it.next();
panelRB.add(new JRadioButton(cdi.getName()));
}
ButtonGroup grupo = new ButtonGroup();
for (int i=0;i<panelRB.getComponentCount();i++){
grupo.add((JRadioButton)panelRB.getComponent(i));
JRadioButton boton = (JRadioButton)panelRB.getComponent(i);
boton.addActionListener(al);
}

marcoSel.getContentPane().add(panelRB,BorderLayout.CENTER);
marcoSel.setSize(300,300);
marcoSel.setVisible(true);
while (dispositivo.compareTo("") == 0){
//espera a que se haga la seleccion
}
marcoSel.dispose();
}

public void actionPerformed(ActionEvent e) {
String ac = e.getActionCommand();
if (ac.equals("captura")){
// capturamos la imagen
FrameGrabbingControl fgc = (FrameGrabbingControl)
player.getControl("javax.media.control.FrameGrabbingControl");
Buffer buf = fgc.grabFrame();
// creamos la imagen awt
BufferToImage btoi = new BufferToImage((VideoFormat)buf.getFormat());
img = btoi.createImage(buf);
// la mostramos en nuestro panel
panelImagen.setImage(img);

}
if (ac.equals("guardar")){
if (img != null){
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
int result = chooser.showOpenDialog(null);
Integer i = new Integer(chooser.APPROVE_OPTION);
if (i != null) {

File archivo = chooser.getSelectedFile();
String imagen = archivo.getAbsolutePath();
System.out.println("imagen: "+imagen);
if (imagen.lastIndexOf(".") > 0){
imagen = imagen.substring(0,imagen.lastIndexOf("."));
}
imagen = imagen + ".JPG";
System.out.println("imagen:" + imagen);
File imagenArch = new File(imagen);
String formato = "JPEG";

try{
ImageIO.write((RenderedImage) img,formato,imagenArch);
}catch (IOException ioe){System.out.println("Error al guardar la imagen");}

}
}
else {
JFrame alerta = new JFrame();
alerta.setSize(300,100);
JPanel panelmsj = new JPanel();
JLabel msj = new JLabel();
msj.setText("Antes de guardar debes realizar una captura");
panelmsj.add(msj);
alerta.getContentPane().add(panelmsj);
alerta.setLocationRelativeTo(this);
alerta.setVisible(true);
alerta.setEnabled(true);
alerta.show();


}
}
if (ac.equals("salir")){
player.close();
System.exit(0);

}
}
public static void main(String[] args) throws Exception {
captura cap = new captura();
cap.seleccion();
cap.marco();
}
class ImagePanel extends Panel
{
public Image myimg = null;

public ImagePanel()
{
setLayout(null);
setSize(320,240);
}

public void setImage(Image img)
{
this.myimg = img;
repaint();
}

public void paint(Graphics g)
{
if (myimg != null)
{
g.drawImage(myimg, 0, 0, this);
}
}
}
}

 
Re: Como llevar una aplicacion Java a un Applet ????
Enviado por Josedev el día 14 de mayo de 2008

Primero que nada debes extender a la clase Applet, por ejemplo:
import java.applet.*;
public class NombreClase extends Applet

y hacer el archvo html que llame a tu clase,
O no se a que te refieres con que no puedes, ya que si hiciste este proframa para video streaming, deberías saberlo ya, creo... Mira, si no tienes experiencia con applets, pon aqui otro comentario, de no ser así, si el problema es que si tienes experiencia con Applets, pero no te esta funcionando algo, pon el problema específico...
Entra a esta página donde puedes encontrar lecturas interesantes sobre java...
http://javaoficial.blogspot.com

 


Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network