Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2009, 09:38
unusuariosecreto
 
Fecha de Ingreso: junio-2008
Ubicación: secreto
Mensajes: 65
Antigüedad: 15 años, 11 meses
Puntos: 2
Exclamación Problema al llamar a un método de otra clase

¡Hola!

Tengo un problema al llamar a un método de otro clase. He creado una clase llamada VentanaAlumno que es una ventana, una clase Alumno (que es una estructura de datos)y otra clase ControlAlumno (que es la que se comunicaría con la base de datos).

El problema me surge cuando intento llamar desde VentanaAlumno al método GrabarAlumno (que se encuentra en ControlAlumno).

Lo que hago es esto:

Código:
ControlAlumno control;
.
.
control.GrabarAlumno();

No creo que eso último esté bien porque aunque supongo que la información le llega a GrabarAlumno, luego no puedo imprimir esa información, ni siquiera puedo hacer un alu.toString(); (alu es un objeto de la clase Alumno).


Agradecería que me dijeseis donde estoy metiendo la pata... GRACIAS!!


Aquí dejo el código completo:

Ventana Alumno
Código:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class VentanaAlumno extends JFrame implements WindowListener{
	Container panel;
	JButton bSalir,bGrabar,bBorrar;
	JTextField tNombre, tApellidos, tNumero;
	JLabel lNombre, lApellidos, lNumero;
	ControlAlumno control;
	
	public VentanaAlumno(String titulo){  //**CONSTRUCTOR DE LA VENTANA**//
	super(titulo);
	panel=getContentPane();
	setSize(280,175);
	panel.setLayout(new FlowLayout());
	
	bSalir=new JButton("Salir"); //instancio los componentes
	bGrabar=new JButton("Grabar");
	bBorrar=new JButton("Borrar");
	tNombre=new JTextField(15);
	tApellidos=new JTextField(15);
	tNumero=new JTextField(15);
	lNombre=new JLabel("Nombre");
	lApellidos=new JLabel("Apellido");
	lNumero=new JLabel("Numero");
	
	bSalir.setSize(40,20);  //establezco propiedades de componentes
	bGrabar.setSize(40,20);
	bBorrar.setSize(40,20);
	tNombre.setSize(40,20);
	tApellidos.setSize(40,20);
	tNumero.setSize(40,20);
	lNombre.setSize(40,20);
	lApellidos.setSize(40,20);
	lNumero.setSize(40,20);
	
	panel.add(lNumero); //añado al panel los componentes
	panel.add(tNumero);
	panel.add(lNombre);
	panel.add(tNombre);
	panel.add(lApellidos);
	panel.add(tApellidos);
	panel.add(bGrabar);
	panel.add(bSalir);
	panel.add(bBorrar);
	panel.add(lConsola);
	panel.add(tConsola);
	
	bSalir.addActionListener(new escuchaSalir()); 
	bBorrar.addActionListener(new escuchaBorrar());
	bGrabar.addActionListener(new escuchaGrabar());
	this.addWindowListener(this);

	setVisible(true);
	}
	
//	**CLASES DE ESCUCHA DE EVENTOS**//    
	
	class escuchaSalir implements ActionListener{
		public void actionPerformed(ActionEvent e) {System.exit(0);}
	}
	
	class escuchaGrabar implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			tConsola.setText("Botón pulsado");
			try{
				control.GrabarAlumno(new Alumno(tNumero.getText(),tNombre.getText(),tApellidos.getText()));
			}catch(Exception evento){tConsola.setText("Imposible grabar: "+evento.getStackTrace());}
		}
	}
	
	class escuchaBorrar implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			tNumero.setText("");
			tApellidos.setText("");
			tNombre.setText("");
			tConsola.setText("Formulario borrado");
		}
	}
	
	public void windowOpened(WindowEvent arg0) {System.out.println("Ventana abierta");}
	public void windowClosing(WindowEvent arg0) {System.out.println("Ventana cerrada");System.exit(0);}
	public void windowClosed(WindowEvent arg0) {}
	public void windowIconified(WindowEvent arg0) {System.out.println("Minimizado");}
	public void windowDeiconified(WindowEvent arg0) {System.out.println("Maximizado");}
	public void windowActivated(WindowEvent arg0) {System.out.println("Ventana activada");}
	public void windowDeactivated(WindowEvent arg0) {System.out.println("Ventana desactivada");}
	
	
	public static void main(String[] args) {
		new VentanaAlumno("Insertar nuevo Alumno");
	}
}

ControlAlumno
Código:
public class ControlAlumno {
	Alumno alu;
	
	public ControlAlumno(Alumno alu){
		this.alu=alu;
	}
	
	public void GrabarAlumno(Alumno Alu){
		System.out.println("Alumno grabado en la base de datos");
		System.out.println(alu.toString());
	}
	
	public static void main(String[] args) {
	}
}