Foros del Web » Programación para mayores de 30 ;) » Java »

Llamar una clase desde otra (por consola)

Estas en el tema de Llamar una clase desde otra (por consola) en el foro de Java en Foros del Web. Buenas comunidad: Resulta que tengo un menú hecho por consola, y quiero que al elegir una opción, este me dirija directamente a la clase que ...
  #1 (permalink)  
Antiguo 29/09/2011, 13:20
 
Fecha de Ingreso: septiembre-2011
Mensajes: 40
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Llamar una clase desde otra (por consola)

Buenas comunidad:

Resulta que tengo un menú hecho por consola, y quiero que al elegir una opción, este me dirija directamente a la clase que fue seleccionada.

Ejemplo: opción 1: ingresar datos ----> clase procedimiento almacenado eliminar

Acá está la clase menú:

package Carga;

import java.io.*;
import java.util.*;

public class MenuPrueba {

public static void main(String args[])throws IOException{

Scanner consola = new Scanner(System.in);
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
int opcion = 0;
String seleccion = "";



// TODO Auto-generated method stub

System.out.println ("************************************");
System.out.println ("************************************");
System.out.println ("** **");
System.out.println ("** MODULO DE CARGAS **");
System.out.println ("** **");
System.out.println ("** 1 - Ingreso de datos **");
System.out.println ("** 2 - Mostrar datos **");
System.out.println ("** 3 - Modificar datos **");
System.out.println ("** 4 - Eliminar datos **");
System.out.println ("** 5 - Salir **");
System.out.println ("** **");
System.out.println ("************************************");
System.out.println ("************************************");

System.out.println ("");
while (opcion == 0){

System.out.println(" Seleccione la opcion que desee: ");
opcion = consola.nextInt();

switch (opcion) {
case 1:
System.out.println("Opcion 1: Ingreso de datos");

opcion =1;
// callableDemo();
break;
case 2:
System.out.println("Opcion 2: Mostrar datos ");
opcion =2;
break;
case 3:
System.out.println("Opcion 3: Modificar datos ");
opcion =3;
break;
case 4:
System.out.println("Opcion 4: Eliminar datos ");
opcion =4;
break;
case 5:
System.out.println("Opcion 5: Salir ");
System.out.println("\nHasta Pronto!!!");
System.exit(5);

break;
default:
System.out.println("Seleccion no valida");
System.out.println ("");
System.out.print("Pulse S si desea continuar o cualquier tecla y luego ENTER para salir: ");
System.out.println ("");
seleccion = stdin.readLine();
// break;
}


} while (seleccion.equals("s"));
System.out.println("\nHasta Pronto!!!");
}

}



Y acá está el procedimiento eliminar:




package ProcedimientoAlmacenado;

import java.sql.*;
import java.util.*;
import java.io.*;

public class ProcedimBorrar {
private Connection Conexion;
private CallableStatement cstmt = null ;
public ProcedimBorrar(Connection Con) {

Conexion = Con;
}

public static void main(String args[]) throws Exception
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLSer verDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://MARTE:1433;DatabaseName=Prueba", "sa", "gsiinformatica");
//Step-1

CallableStatement cstmt = con.prepareCall("{call ProcedAlmac_BorraPersona(?)}");
Scanner sc=new Scanner(System.in);

// Statement stmt = con.createStatement();
// Si fuese integer System.out.print("Enter the Employee No: ");
//int x=sc.nextInt();



//System.out.print("Ingrese el nombre: ");
//String nombre = sc.next();

//System.out.print("Ingrese el apellido: ");
//String apellido = sc.next();

System.out.println("Ingrese el RUT: ");
String rut = sc.next();


//Step-2
//cstmt.setString(1,nombre);
//cstmt.setString(2,apellido);
cstmt.setString(1,rut);

//Step -3
cstmt.execute();
System.out.println("***Llamada a Procedimiento Almacenado****");
System.out.println("Persona eliminada con Exito");
con.close();
}

}

No sé cómo hacer esto.

Lo otro: necesito que la aplicación me ataje los errores como largo del nombre (máximo30)

Ayuda, por favooooooooorrrrrrrrr!!!!!!!!!
  #2 (permalink)  
Antiguo 30/09/2011, 11:11
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Llamar una clase desde otra (por consola)

No tengo ni idea de que problema tienes porque no te has explicado muy bien.

Por lo poco que he entendido, quieres que al elegir la opción 1 se llame al procedimiento main de la clase ProcedimBorrar. Así no es como se hacen las cosas.

Un programa debe tener una sola entrada (una clase con un procedimiento main) y, a partir de ahí se llaman a las demás clases.

Deberías cambiar el nombre del procedimiento main (por ejemplo, borrarDatos) de la clase ProcedimBorrar (esta clase deberías llamarla de otra manera, por ejemplo, ProcedimientosAlmacenados, aunque no es el nombre ideal) y en la clase MenuPrueba:

Código Java:
Ver original
  1. package Carga;
  2.  
  3. import java.io.*;
  4. import java.util.*;
  5. import ProcedimientoAlmacenado.*;
  6.  
  7. public class MenuPrueba {
  8.  
  9. public static void main(String args[])throws IOException{
  10.  
  11. Scanner consola = new Scanner(System.in);
  12. int opcion = 0;
  13. String seleccion = "";
  14.  
  15.  
  16.  
  17. // TODO Auto-generated method stub
  18.  
  19. System.out.println ("************************************");
  20. System.out.println ("************************************");
  21. System.out.println ("** **");
  22. System.out.println ("** MODULO DE CARGAS **");
  23. System.out.println ("** **");
  24. System.out.println ("** 1 - Ingreso de datos **");
  25. System.out.println ("** 2 - Mostrar datos **");
  26. System.out.println ("** 3 - Modificar datos **");
  27. System.out.println ("** 4 - Eliminar datos **");
  28. System.out.println ("** 5 - Salir **");
  29. System.out.println ("** **");
  30. System.out.println ("************************************");
  31. System.out.println ("************************************");
  32.  
  33. System.out.println ("");
  34. while (opcion == 0){
  35.  
  36. System.out.println(" Seleccione la opcion que desee: ");
  37. opcion = consola.nextInt();
  38.  
  39. switch (opcion) {
  40. case 1:
  41. System.out.println("Opcion 1: Ingreso de datos");
  42. ProcedimientosAlmacenados.borrarDatos();
  43. break;
  44. case 2:
  45. System.out.println("Opcion 2: Mostrar datos ");
  46. opcion =2;
  47. break;
  48. case 3:
  49. System.out.println("Opcion 3: Modificar datos ");
  50. opcion =3;
  51. break;
  52. case 4:
  53. System.out.println("Opcion 4: Eliminar datos ");
  54. opcion =4;
  55. break;
  56. case 5:
  57. System.out.println("Opcion 5: Salir ");
  58. System.out.println("\nHasta Pronto!!!");
  59. System.exit(5);
  60.  
  61. break;
  62. default:
  63. System.out.println("Seleccion no valida");
  64. System.out.println ("");
  65. System.out.print("Pulse S si desea continuar o cualquier tecla y luego ENTER para salir: ");
  66. System.out.println ("");
  67. seleccion = stdin.readLine();
  68. // break;
  69. }
  70.  
  71.  
  72. } while (seleccion.equals("s"));
  73. System.out.println("\nHasta Pronto!!!");
  74. }
  75.  
  76. }

Aun así, veo que tienes problemas con el paradigma de la orientación a objetos y deberías estudiarlo un poco para ver como se realizan bien los programas.

Saludos

Etiquetas: consola
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:13.