Jump to content

AYUDA EN JAVA....


Recommended Posts

hola gente... como estan??? bueno.... les comento mi problema..

 

trato de pasar un String desde una clase a otra... pero al momento de traspasarlo... por algun motivo.. (a lo mejor yo no me he dado cuenta) el valor lo traspasa como 0 en caso de un INT.... o NULL en caso de un STRING.... les dejos los codigos...

 

DESDE AKI ESTOY TRATANDO DE TRASPASAR... EL STRING CURSO...

package ventanas;
import ventanas.MiPrincipal;

import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import modelo.GestionProducto;

/**
*
* @author 0_coL
*/
public class Curso extends javax.swing.JFrame {
     String curso;
    /** Creates new form Curso */
    public Curso() {
        initComponents();
        GestionProducto.cargarLista(SeleccionCurso);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")                      

    private void SeleccionCursoActionPerformed(java.awt.event.ActionEvent evt) {                                               
        // TODO add your handling code here:
        /*MiPrincipal m = new MiPrincipal();
        if(SeleccionCurso.getSelectedIndex() != 0){
           String sql = "select * from app.ALUMNOS where " + "app.ALUMNOS.ID = '"+SeleccionCurso.getSelectedItem()+"'";
           GestionProducto.cargarTabla(m.getTablaAlumno(), sql);

       }else{

           DefaultTableModel modelo = (DefaultTableModel) m.getTablaAlumno().getModel();
           modelo.getDataVector().clear();
           m.getTablaAlumno().setModel(modelo);
           m.getTablaAlumno().updateUI();
           GestionProducto.cargarTabla(m.getTablaAlumno(), "select * from app.ALUMNOS");
       }*/
        
    }                                              

    private void formWindowOpened(java.awt.event.WindowEvent evt) {
        
    }
    private void botonSalirActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        System.exit(0);
    }                                          

    private void aceptarCursoActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // TODO add your handling code here:
        MiPrincipal m = new MiPrincipal();
        if(SeleccionCurso.getSelectedIndex() != 0){
            //modelo.GestionProducto.eliminarProducto(SeleccionCurso.getSelectedItem().toString());
            curso = SeleccionCurso.getSelectedItem().toString();
            String sql = "select * from app.ALUMNOS where app.ALUMNOS.ID = '"+SeleccionCurso.getSelectedIndex()+"' order by app.ALUMNOS.APELLIDOPATERNO";
            GestionProducto.cargarTabla(m.getTablaAlumno(), sql);
            GestionProducto.cargarLista(SeleccionCurso);
            //MiPrincipal m = new MiPrincipal();
            //System.out.println(curso);
            m.setVisible(true);
            dispose();
        }else{
            JOptionPane.showMessageDialog(null, "Seleccion un curso");


        }
    }                                            

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Curso().setVisible(true);
            }
        });

    }

    public String getCurso() {
        return curso;
    }







    // Variables declaration - do not modify                     
    private javax.swing.JComboBox SeleccionCurso;
    private javax.swing.JButton aceptarCurso;
    private javax.swing.JButton botonSalir;
    // End of variables declaration                   

}

 

LO ESTOY TRATANDO DE TRASPASAR AQUI... PRIMERO LO IMPRIMO PARA VER LO QUE ARROJA..... Y AHY ESTA EL ERROR... ME ARROJA NULL O 0 COMO LO COMENTABA....

 


package ventanas;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import modelo.GestionProducto;
import ventanas.ingresarAlumno;
import ventanas.Curso;

/**
*
* @author 0_coL
*/
public class MiPrincipal extends javax.swing.JFrame {

    /** Creates new form MiPrincipal */
    boolean b;
    public MiPrincipal() {
        initComponents();
        System.out.println(new Curso().getCurso());
        //GestionProducto.cargarTabla(tablaAlumno, "select * from app.ALUMNOS where app.ALUMNOS.ID = '"+this.cur+"' order by app.ALUMNOS.APELLIDOPATERNO");
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")

    private void desconectarMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                                    
        // TODO add your handling code here:
        Principal p = new Principal();
        p.setVisible(true);
        dispose();
}                                                   

    private void deleteMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                               
        // TODO add your handling code here:
        System.exit(0);
}                                              

    private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                             
        System.exit(0);
}                                            

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        ingresarAlumno i = new ingresarAlumno();
            i.setVisible(true);
            dispose();
    }                                        

    private void AnotacionesActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        new ventanas.ingresarAnotaciones().setVisible(true);
        dispose();
    }                                           

    private void ingresarNotasActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        new ingresarNotas().setVisible(true);
        dispose();
    }                                             

    private void SeleccionarCursoMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        new Curso().setVisible(true);
        dispose();
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MiPrincipal().setVisible(true);
            }
        });

    }

    public JTable getTablaAlumno() {
        return tablaAlumno;
    }

    // Variables declaration - do not modify
    private javax.swing.JButton Anotaciones;
    private javax.swing.JMenuItem SeleccionarCursoMenuItem;
    private javax.swing.JMenuItem aboutMenuItem;
    private javax.swing.JMenuItem contentMenuItem;
    private javax.swing.JMenuItem deleteMenuItem;
    private javax.swing.JMenuItem desconectarMenuItem;
    private javax.swing.JMenu editMenu;
    private javax.swing.JButton eliminarAlumno;
    private javax.swing.JMenuItem exitMenuItem;
    private javax.swing.JMenu fileMenu;
    private javax.swing.JMenu helpMenu;
    private javax.swing.JButton ingresarNotas;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JMenuItem openMenuItem;
    private javax.swing.JMenuItem saveAsMenuItem;
    private javax.swing.JMenuItem saveMenuItem;
    private javax.swing.JTable tablaAlumno;
    // End of variables declaration

}

 

no se quien es tan amable de ayudarme.... a todo esto... trabajo con netbeans.... ;)

 

saludos.... y de antemano muchas gracias...

Edited by 0_c0oL
Link to comment
Share on other sites

no veo que inicialices la variable "curso" en ningún lado.

 

    String curso;
    /** Creates new form Curso */
    public Curso() {
        initComponents();
        GestionProducto.cargarLista(SeleccionCurso);
    }

 

lo otro, ¿donde declaras la variable seleccion curso?.

 

en un principio te iba a recomendar usar el modificador "public" en el string curso pero al estar en el mismo package no hay problemas.

Edited by xchanox
Link to comment
Share on other sites

:blink: Estimado...

 

Hay un problema en los "tiempos de ejecución"...

 

voy a tratar de explicarlo detalladamente ......

 

Cando haces un new estas creando una nueva instancia de una clase.... en donde los atributos tienen valores totalmente independientes entre instancias... (a los valores de los atributos en un momento dado se le llama "estado del objeto")

 

Cuando instancias la clase "Curso", se crea la variable de instancia String curso. y se inicializa automaticamente en null...

 

La variable curso solo va a tener un valor cuando el usuario presione Aceptar y se ejecute la sentencia

 

  ...
  curso = SeleccionCurso.getSelectedItem().toString();
  ...

 

En el constructor de la clase MiPrincipal, tienes el siguiente codigo.

 

  ...
  // creas una nueva instancia de Curso (atributo curso se inicaliza en null) y lo accedes con el "getter"
  System.out.println(new Curso().getCurso());
  // y esta en null
  ...

 

En misma clase también tiene el siguiente codigo

 

  private void SeleccionarCursoMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        new Curso().setVisible(true);
        dispose();
    }

 

 

En este nuevamente estas creando una instancia (nuevamente curso esta en null) y la haces visible...

 

Es mas... la forma en que creas el objeto, nunca podrás obtener el curso que selecciona el usuario, ya que no salvas la referencia del objeto.... y sin referencia, no le puedes enviar mensajes (invocar método getCurso())

 

 

Tambien desde la clase curso, creas nuevas instancias de MiPrincipal y viceversa... y ninguna de esas instancias se conocen entre si...

 

;) ya estoy medio enredado.....

 

Raya pa' la Suma...

 

Si quieres obtener el valor de curso que ingreso el usuario debes hacer la siguiente.

 

  //Atributo
  private Curso vtaCurso = new Curso();
  // en alguna parte del codigo, despues de ejecutar presionar el boton aceptar de la ventana curso...
  System.out.println(vtaCurso.getCurso());

 

:tonto: :tonto: Bueno, hice mi mejor esfuerzo en explicar...

 

 

 

 

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...