elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / Re: [java] Método modificar sobre datos en un fichero en: 11 Febrero 2023, 10:28 am
Hola, viendo que no consigo respuesta voy a explicarme.
Estoy haciendo el ejercicio "Actividades de aplicación 11.21 del libro Programación de Alfonso Jiménez Marín".
Este ejercicio ya lo tengo resuelto, creo, de otras formas, lo digo porque ahora estoy haciendo otras cosas y no me acuerdo muy bien.
A ver si alguien lo tiene hecho, quizás yo me he complicado y lo estoy haciendo, como forma de estudiar, de otra manera diferente y no es la correcta.
Repito, me falta hacer el método update().
Gracias a todos.
Saludos.

2  Programación / Java / [java] Método modificar sobre datos en un fichero en: 1 Enero 2023, 23:00 pm
Hola. Estoy haciendo un programa y tengo
Código:
public class Cliente implements Serializable{
    private int id;
    private String nombre;
    private String telefono;
}
Código:
public class Lista implements Serializable{
    private Object [] tabla;
    
    public Lista(){
        tabla=new Object[0];
    }
public Object get(int indice){
        Object obj=null;
        if(indice>=0 && indice<tabla.length){
            obj=tabla[indice];
        }
        return obj;
    }
    
    public int buscar(Object obj){
        int indice=-1;
        for(int i=0; i<tabla.length && indice==-1; i++){
            if(tabla[i].equals(obj)){
                indice=i;
            }
        }
        return indice;
    }

Código:
Principal{
static int opcion;
    static ObjectInputStream ois;
    static ObjectOutputStream oos;
    static Lista listado;
    
    public static void main(String[]args){
        sc=new Scanner(System.in);
        listado=new Lista();
}
public static void update(){
      
        try{
            System.out.print("Id cliente a modificar: ");
            int id=Integer.parseInt(sc.nextLine());

            
            if(id<1 && id>listado.length()){
                System.out.println("No existe cliente con id: "+id);
            }else{
                
                System.out.print("Introduca nombre: ");
                String nombre=sc.nextLine();
              
                System.out.print("Introduzca telefono: ");
                String telefono=sc.nextLine();
                
            }
        }catch(NumberFormatException nfe){
            System.out.println("ERROR. El id debe ser un entero.");
        }
    }
}

Estoy estudiando I/O streams en la parte de ObjectInputStream y ObjectOutputStream. Los métodos de readFile() y writeFile() los tengo y no tengo problemas.
El problema lo tengo en el método de update(), donde tengo que introducir el id del cliente para modificarlo. Si fuese un array normal no habría problema pero el código lo tengo que hacer por medio de la Clase Lista la cual no debo cambiar y de la que he insertado dos métodos. Repito obtenerlo de un array normal no es problema, pero me estoy armando un listo al obtenerlo de listado. En el main tengo un menu que no he insertado ya que creo qeu no hace falta.
Me haría falta un método que recibiese el id y devolviese la posición. Y este método debería estar en la clase Principal.
Espero haberme explicado. Gracias a todos.
Saludos y feliz año.
3  Programación / Java / Java mvc cargar tabla en: 13 Junio 2022, 15:52 pm
Hola a todos.
Estoy haciendo un programa en modo MVC y quiero separar totalmente la vista del modelo.
En el programa que me funciona tengo este método: public void loadTable(JTable table);,
el cual me funciona perfectamente pero como podéis ver no separo totalmente la vista del modelo, porque dicho método lo tengo en la clase ComunidadTable que está en el paquete modelo.
Código:
public ModeloTabla_base(ResultSet rsRegistros){
        super();
        this.rsRegistros=rsRegistros;
        try{
           rsMetadata=rsRegistros.getMetaData();//almacenamos los metadatos que viajan en el resultset
        }catch(SQLException e){
            e.printStackTrace();
        }
    }
Este código anterior lo tengo en la clase ModeloTabla extends AbstractTableModel.
El problema lo tengo, tras crear un atributo Tabla y otro ModeloTabla en el paquete Controlador, en la clase Prinicipal que me toca poner tanto el parámetro de Tabla como de ModeloTabla, y entonces en ModeloTabla me obliga a poner como parámetro un ResultSet, el cual no tiene constructor.
A ver si alguien me puede hechar una mano o decirme, simplemente, la interfaz del método para cargar la tabla que sea diferente al método indicado inicialmente. Espero haberme explicado bien.
Gracias a todos. Un saludo.
4  Programación / Java / Re: java validar registro base de datos mysql en: 30 Enero 2022, 22:56 pm
Resuelvo yo mismo. Creo que sí porque lo he resuelto así con un método que me devuelve el listado.
Un saludo.
5  Programación / Java / java validar registro base de datos mysql en: 30 Enero 2022, 19:18 pm
Hola a todos.
Tengo que leer, en java, un registro de la base de datos de MYSQL existente.  Para ello tengo una clase validador donde valido un entero de 2 cifras. Después en el controlador establezco el formateador del JFormatterTextField. Todo esto me funciona correctamente, pero antes debo saber que existe realmente el archivo en la base de datos que quiero leer.
O sea, la pregunta sería: ¿Cómo saber, en java, si un registro de la base de datos MYSQL existe?
No sé cual sería la mejor opción, si guardar todos los registros en un listado para después obtener el necesitado u otras opicones mejores. ¿Existe otra opción mejor?
Gracias de antemano.
Un saludo a todos.
6  Programación / Java / Re: Abrir con windowlistener dos jdialog en: 9 Diciembre 2021, 21:34 pm
Hola otra vez. Ya lo he resuelto. A veces uno no sabe donde está el norte ni en cosas sencillas.
Creo que la resolución es:
public void windowClosing(WindowEvent e) {
        Window window=(Window)e.getWindow(); 
        if(marco.dialog.equals(window)){
           marco.setVisible(true);
           marco.dialog.setVisible(false);
        }   
         if(marco.dialog.equals(window)){
           marco.dialog.setVisible(true);
           marco.dialog.dialog2.setVisible(false);
        }
}
Espero que esta solución sea la correcta.
Un saludo.   
7  Programación / Java / Abrir con windowlistener dos jdialog en: 8 Diciembre 2021, 22:42 pm
Hola.
Estoy haciendo un pograma y he utilizado siguiente método para cuando cierro el jdialog hijo me muestre el jframe padre.

public void windowClosing(WindowEvent e){
marco.setVisible(true);
marco.dialog1.setVisible(false);
}

Entonces quiero poder cerrar el dialog2 y abrir el dialog1. Pero creo que no lo puedo poner en el mismo método porque ..
marco.dialog1.setVisible(true);
msrco.dialog1.dialog2(false);

Sabeis como puedo ahcer esto?
Saludos a todos.
Gracias de antemano.
8  Programación / Java / Re: java crear sesion cine nullpointerexception en: 13 Noviembre 2021, 18:38 pm
Hola otra vez.
Ya he conseguido resolverlo. Solo era un problema de escritura al repetir ListadoSesiones
listadoSesiones en constructor.
Un saludo
9  Programación / Java / java crear sesion cine nullpointerexception en: 13 Noviembre 2021, 16:04 pm
Hola, soy nuevo desde hoy.
Estoy realizando un programa java mvc de 4 paquetes con las siguientes clases: Menu, Cine, EntradaTeclado, Genero, ListadoPeliculas, ListadoSalas, ListadoSesiones, Pelicula, Sala, Sesion, PeliculaDao, SalaDao, SesionDao y Controlador. Aunque para el programa falta mucho y todo lo demás lo sé estoy estancado creando una sesión para la cual debo asignar una fecha y una película, y además debe haber una sala anteriormente. Me marca nullpointer exception. El controlador solo inicia el menú. Os adjunto la clase SesionDao, donde estoy atascado, y la clase Sala y Cine.
A ver si alguien me echa una mano.

Método de ListadoPeliculas que falla
public Pelicula getPelicula(String titulo){
        for(Pelicula pelicula:listadoPeliculas){
            if(pelicula.getTitulo().equals(titulo)){
                return pelicula;
            }
        }
        return null;
    }

Este método no es el que me preocupa. Me preocupa esto: cine.getListadoSalas().getSala(numSala).getListadoSesiones().addSesion(sesion);

En el constructor de Menu tengo:
public Menu(){
        opcion=0;
        et=new EntradaTeclado();
        cine=new Cine();
       
        peliculaDao=new PeliculaDao(cine);
        salaDao=new SalaDao(cine);
        sesionDao=new SesionDao(cine);
    }

Un saludo a todos.

Código
  1. public class SesionDao {
  2.    private EntradaTeclado et;
  3.    private Cine cine;
  4.    private Sesion sesion;
  5.    private LocalDateTime horaSesion;
  6.    private Sala sala;
  7.    private Pelicula pelicula;  
  8.  
  9.    public SesionDao(Cine cine){
  10.        et=new EntradaTeclado();
  11.        this.cine=cine;
  12.    }
  13.  
  14.    public LocalDateTime indicarSesion(){
  15.        System.out.print("Introduzca año: ");
  16.        et.pedirEntrada();
  17.        int anyo=Integer.parseInt(et.getEntrada());
  18.        System.out.print("Introduzca mes: ");
  19.        et.pedirEntrada();
  20.        int mes=Integer.parseInt(et.getEntrada());
  21.        System.out.print("Introduzca día: ");
  22.        et.pedirEntrada();
  23.        int dia=Integer.parseInt(et.getEntrada());
  24.        System.out.print("Introduzca hora: ");
  25.        et.pedirEntrada();
  26.        int hora=Integer.parseInt(et.getEntrada());
  27.        System.out.print("Introduzca minuto: ");
  28.        et.pedirEntrada();
  29.        int min=Integer.parseInt(et.getEntrada());
  30.        System.out.print("Introduzca segundo: ");
  31.        et.pedirEntrada();
  32.        int sec=Integer.parseInt(et.getEntrada());
  33.        horaSesion=LocalDateTime.of(anyo,mes,dia,hora,min,sec);
  34.        return horaSesion;
  35.    }
  36.  
  37.    public void createSesion(){
  38.        System.out.println("CREAR NUEVA SESIÓN");
  39.        if(cine.getListadoSalas().isEmpty()==true){
  40.            System.out.println("No se puede crear una sesión");
  41.        }else{
  42.            try{          
  43.                horaSesion=indicarSesion();
  44.  
  45.                System.out.print("Introduzca el título de la película: ");
  46.                et.pedirEntrada();
  47.                String titulo=et.getEntrada();//utilizar toUpperCase()
  48.                //pelicula=new Pelicula();
  49.                //pelicula.setTitulo(titulo);
  50.                pelicula=cine.getListadoPeliculas().getPelicula(titulo);
  51.                System.out.println(cine.getListadoPeliculas().getPelicula(titulo).toString());//FALLA
  52.  
  53.                System.out.print("Introduzca el número de sala: ");
  54.                et.pedirEntrada();
  55.                int numSala=Integer.parseInt(et.getEntrada());
  56.                //sala=new Sala();
  57.                //sala.setNumSala(numSala);
  58.                sala=cine.getListadoSalas().getSala(numSala);
  59.                 System.out.println(sala.toString());
  60.                sesion=new Sesion(horaSesion,pelicula);
  61.                //opción 1
  62.                //sala.getListadoSesiones().addSesion(sesion);
  63.                //opción 2
  64.                //cine.getListadoSalas().getSala(numSala).getListadoSesiones().addSesion(sesion);
  65.  
  66.            }catch(NumberFormatException e){
  67.                System.out.println("El string insertado no tiene el formato apropiado");
  68.            }
  69.        }
  70.    }
  71.  
  72.    public void readSesion(){//sin acabar
  73.        System.out.println("\nVER SESIÓN");
  74.        horaSesion=indicarSesion();
  75.        //cine.getListadoSalas().getSala(numSala).mostrarInfoSala();
  76.        sesion=new Sesion(horaSesion);
  77.        //sesion=sala.getListadoSesiones().getSesion(horaSesion);
  78.        sesion.mostrarInfoSesion();
  79.    }
  80.  
  81.    public void updateSesion(){
  82.  
  83.    }
  84.  
  85.    public void deleteSesion(){
  86.  
  87.    }
  88. }

Código
  1. public class Cine {
  2.    private String nombre,direccion;
  3.    private ListadoPeliculas listadoPeliculas;
  4.    private ListadoSalas listadoSalas;
  5.  
  6.    public Cine(){
  7.        nombre="WINDSOR";
  8.        direccion="Trinidad 47";
  9.        listadoPeliculas=new ListadoPeliculas();
  10.        listadoSalas=new ListadoSalas();
  11.    }
  12.  
  13.    public String getNombre() {
  14.        return nombre;
  15.    }
  16.  
  17.    public String getDireccion() {
  18.        return direccion;
  19.    }
  20.  
  21.    public ListadoPeliculas getListadoPeliculas() {
  22.        return listadoPeliculas;
  23.    }
  24.  
  25.    public ListadoSalas getListadoSalas() {
  26.        return listadoSalas;
  27.    }
  28.  
  29. }
Código
  1. public class Sala {
  2.    private int numSala;
  3.    private int butacas;
  4.    private ListadoSesiones listadoSesiones;
  5.  
  6.    public Sala() {
  7.        listadoSesiones = new ListadoSesiones();
  8.        numSala=0;
  9.        butacas=0;
  10.    }
  11.  
  12.  
  13.    public Sala(int numSala, int butacas) {
  14.        this.numSala = numSala;
  15.        this.butacas = butacas;
  16.        ListadoSesiones listadoSesiones;
  17.    }
  18.  
  19.    public int getNumSala() {
  20.        return numSala;
  21.    }
  22.  
  23.    public int getButacas() {
  24.        return butacas;
  25.    }
  26.  
  27.    public ListadoSesiones getListadoSesiones() {
  28.        return listadoSesiones;
  29.    }
  30.  
  31.    public void setNumSala(int numSala) {
  32.        this.numSala = numSala;
  33.    }
  34.  
  35.    public void setButacas(int butacas) {
  36.        this.butacas = butacas;
  37.    }
  38.  
  39.    @Override
  40.    public String toString(){
  41.        return "Número sala: "+numSala+", número butacas: "+butacas;
  42.    }
  43.  
  44.    public void mostrarInfoSala(){
  45.        System.out.println("INFORMACIÓN DE LA SALA");
  46.        System.out.println("Id sala: <"+numSala+">\nNúmero de butacas: <"+butacas);
  47.    }
  48. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines