Foro sobre Java SE > Creación de clase que permite abrir archivos pdf desde un botón
Cordial saludo compañeros hispanos. Continuando con mi proyecto me encuentro en este momento abriendo archivos desde un botón, mi programa identifica el sistema operativo que se está usando y si es Windows XP puede abrir un archivo .pdf que yo lo indico, si no es Windows XP, abrirá otro archivo
Resulta que en otros jFrame, debo realizar el mismo proceso, solo que debo abrir otros archivos, así que requiero implementar una clase que pueda llamar desde diferentes JDialog,
El botón que me funciona correctamente es el siguiente:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String s = null;
try {
// Determinar el sistema operativo String so = System.getProperty("os.name");
String comando;
// Comando para Linux if (so.equals("Linux")) comando = "ver";
// Comando para Windows else comando = "cmd /c ver";
// Se ejecuta el comando Process p = Runtime.getRuntime().exec(comando);
BufferedReader stdInput = new BufferedReader(new InputStreamReader( p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader( p.getErrorStream()));
// Se lee la salida del comando System.out.println("Ésta es la salida standard del comando:\n"); while ((s = stdInput.readLine()) != null) { System.out.println(s);
if (s.contains("XP")) { try { Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "src\\Tutoriales\\TUTORIAL PARA ELIMINAR ARCHIVOS TEMPORALES EN WINDOWS XP.docx"); } catch (Exception e) { JOptionPane.showMessageDialog(rootPane, e , "Error", JOptionPane.ERROR_MESSAGE); } } else { try { Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "src\\Tutoriales\\Prueba.txt"); } catch (Exception e) { JOptionPane.showMessageDialog(rootPane, e , "Error", JOptionPane.ERROR_MESSAGE); } //aqui debe abrirse el tutorial para SO diferentes a XP } }
// Lectura de errores System.out .println("Errores a continuación:\n"); while ((s = stdError.readLine()) != null) { System.out.println(s);
¿Cómo hago para usar el código que tengo dentro del botón para que pueda ser usado como clase, para que después, al llamar esta clase desde cualquier botón en un jdialog yo solo deba usar el nombre de la clase y la ruta de los archivos que debo abrir ?
La idea es siempre la misma: creas una clase, y declaras dentro de ella un método (o varios) con el código apropiado. Cuando necesites usar ese código, creas una instancia de esa clase, y llamas al método.
Cordial saludo compañeros hispanos. Continuando con mi proyecto me encuentro en este momento abriendo archivos desde un botón, mi programa identifica el sistema operativo que se está usando y si es Windows XP puede abrir un archivo .pdf que yo lo indico, si no es Windows XP, abrirá otro archivo
Resulta que en otros jFrame, debo realizar el mismo proceso, solo que debo abrir otros archivos, así que requiero implementar una clase que pueda llamar desde diferentes JDialog,
Las librerías que uso son las siguientes:
package soporteinternet005;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JOptionPane;
El botón que me funciona correctamente es el siguiente:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String s = null;
try {
// Determinar el sistema operativo
String so = System.getProperty("os.name");
String comando;
// Comando para Linux
if (so.equals("Linux"))
comando = "ver";
// Comando para Windows
else
comando = "cmd /c ver";
// Se ejecuta el comando
Process p = Runtime.getRuntime().exec(comando);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(
p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(
p.getErrorStream()));
// Se lee la salida del comando
System.out.println("Ésta es la salida standard del comando:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
if (s.contains("XP")) {
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "src\\Tutoriales\\TUTORIAL PARA ELIMINAR ARCHIVOS TEMPORALES EN WINDOWS XP.docx");
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e , "Error", JOptionPane.ERROR_MESSAGE);
}
}
else {
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "src\\Tutoriales\\Prueba.txt");
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e , "Error", JOptionPane.ERROR_MESSAGE);
}
//aqui debe abrirse el tutorial para SO diferentes a XP
}
}
// Lectura de errores
System.out
.println("Errores a continuación:\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
//System.exit(0);
} catch (IOException e) {
System.out.println("Excepción: ");
e.printStackTrace();
//System.exit(-1);
}
}
¿Cómo hago para usar el código que tengo dentro del botón para que pueda ser usado como clase, para que después, al llamar esta clase desde cualquier botón en un jdialog yo solo deba usar el nombre de la clase y la ruta de los archivos que debo abrir ?