Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > ¿Es posible incrustar Java Desktop en un componente swing?

Buen dia a todos:

Me gustaria saber si alguien me podria decir si es posible y como incrustar o embeber un archivo abierto con Java desktop ejm:
Desktop.getDesktop().open(myLocFile);
ó
Runtime.getRuntime().exec("rundll32 url.dll, FileProtocolHandler " + myLocFile.getAbsoluteFile());

En un componente swing ya sea JLabel, JPane, JFrame etc... ejemplo:
JLabel.setIcon(Desktop.getDesktop().open(myLocFile));

La idea es que el documento no lo abra en una ventana separada sino en un componente dentro de mi aplicacion java.

Saludos y gracias :).

enero 11, 2013 | Registered Commenterenyels

Cada componente de Swing admite un tipo de datos, más o menos estructurados. No es posible "embeber" sin más un "documento" genérico.
Sería más útil para ti que explicases con detalle lo que quieres lograr.

enero 12, 2013 | Registered Commenterchoces

Gracias por tu respuesta choces, explico un poco la idea:

Estoy desarrollando un visor de documentos, la aplicacion tiene como entrada el nombre del documento este lo busca en un directorio especifico y lo abre siempre y cuando exista, gracias a "Java Desktop System" esto se puede hacer sin problemas siempre y cuando la aplicacion para dicho documento exista en mi pc.

Sin embargo "Java Desktop System" abre el documento en una ventana separada de mi aplicacion, ahora lo que pretendo hacer es:

Que el documento no se abra en una ventana por separado, sino que se muestre en algun componente de la misma ventana de mi aplicacion ya sea en un JPanel, JLabel etc.

Espero halla podido explicar la idea, me gustaria conocer si esto es posible y como.

Saludos y Gracias :).

enero 14, 2013 | Registered Commenterenyels

No, así directamente no se puede hacer.
Cada componente tiene su propio modelo de datos interno, que se representa visualmente según sus propias características.
Lo que sí se puede hacer es convertir los datos de un documento, al modelo interno del componente más adecuado, cuando es posible.
Por ejemplo, un JLabel puede representar una imagen y un texto. La imagen y el texto deben asignarse al componente según sus métodos internos. Lo mismo vale para el resto de los componentes.
No es posible representar visualmente una hoja de cáculo Excel en una JTable, así tal cual. Lo que sí es factible es diseñar una JTable que muestre el contenido de una hoja de cálculo, extrayendo los datos de las celdas de la hoja, e insertándolos en el modelo interno de la JTable.

enero 15, 2013 | Registered Commenterchoces

Sin duda estoy de acuerdo contigo, me he puesto a buscar por todo google y otros lugares, no encuentro nada parecido, de echo inicialmente le estaba haciendo como mencionas habia logrado mostrar cualquier formato de imagen, tambien pdf, ppt, txt, (todos a manera de imagen en un JLabel) sin embargo como la idea es visualizar cualquier tipo de documento (formato) ya imaginaras cuanto creceria el codigo por lo tanto no seria practico, al final mi Solucion es usar "Usar Java Desktop System", gracias por tus comentarios saludos.

enero 16, 2013 | Registered Commenterenyels