Java - Pasar Variables entre Class en una misma pagina

 
Vista:

Pasar Variables entre Class en una misma pagina

Publicado por Gabriel (2 intervenciones) el 17/12/2008 04:09:02
Lo que hace mi codigo es que al presionar el boton factura, se abra una ventana interna (asta aca voi bien) y muestre las variables que ingrese.

--------------------------------
import java.awt.*;
import java.sql.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class num1panel extends JFrame
{
static JDesktopPane desktop = null; //ESTE OBJETO CONTIENE A LOS JInternalFrame
public Choice pago;
public Choice tipo;
public JPanel panel;
// public JPanel principal;
public ImageIcon image;
public JLabel Imagen;
int nume1;
// public JLabel etiqueta1;
JPanel principal = new JPanel(new BorderLayout()); //panel necesario para poder dividir la ventana y asi poder mostrar la ventana nueva
Label Regalo=new Label("Regalo ");
Label etiqueta1=new Label("Forma de Pago");
Label Nombre=new Label("Nombre del Cliente");
JButton boton=new JButton("Aceptar");
JButton botoncito=new JButton("Salir");
JButton factura=new JButton("Factura");
TextField cliente=new TextField("",12);
String db="C:\bd\1.mdb";
String url="jdbc:odbc:MS Access Database;DBQ="+db;
Connection con;
Statement select;

public num1panel(String titulo){
super(titulo);
desktop = new JDesktopPane();//INSTANCIAMOS EL OBJETO
Conectar();
setSize(1000,500);
// etiqueta1=new JLabel("Forma de Pago");

pago=new Choice();
pago.addItem("Al Contado");
pago.addItem("Visa");
pago.addItem("Master Card");
pago.addItem("RedBan");
tipo=new Choice();
tipo.addItem("Regalo");
tipo.addItem("Normal");
String caja1;
caja1 = JOptionPane.showInputDialog("Precio");
nume1 = Integer.parseInt(caja1);
image=new ImageIcon("cupon.JPG");
Imagen=new JLabel(image);
panel=new JPanel();
panel.setBackground (Color.WHITE);
panel.setForeground(Color.BLUE);
panel.setLayout(new GridLayout(0,1,1,1));
panel.setLayout(new FlowLayout());//formato de panel para acomodar comp
// principal.setLayout(new BorderLayout);
panel.add(Nombre);
panel.add(cliente);
panel.add(etiqueta1);
panel.add(pago);
panel.add(Regalo);
panel.add(tipo);
panel.add(boton);
panel.add(botoncito);
panel.add(factura);
panel.add(desktop);
principal.add(panel, BorderLayout.NORTH);
principal.add(desktop, BorderLayout.CENTER);
getContentPane().add(principal); ///agregar panel al contenedor
if(nume1 > 5000){
/* Label labelD=new Label();
labelD.setText("Gana Cupon");
panel.add(labelD); */
panel.add(Imagen);
}
/* EVENTO PARA LOS BOTONES */
//para cerrar ventana
botoncito.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
System.exit(0);
}
});

//para abrir ventana nueva al presionar factura
factura.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
crearVentana();
}
});

//para guardar en la bd al presionar aceptar
boton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
guarda();
}
});
/* FIN EVENTO DE LOS BOTONES */
}

public void Conectar()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,"","");
select=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //permite funciones sql
String q;
ResultSet muestra=null;
}
catch(Exception ex)
{
System.out.println("Fallo la conexión");
}


}

public void guarda()
{
try
{
// String q="insert into Tabla2 values ('1','2','3')";
// String q="insert into Tabla2(Precio, Pago, Tipo, Nombre) values ("+ nume1 +",'"+pago +"','"+tipo +"','"+cliente.getText()+"')";
String q="insert into Tabla2(Precio, Pago, Tipo, Nombre) values ("+ nume1 +",'3','4','"+cliente.getText()+"')";

select.executeUpdate(q);
}
catch(Exception ex)
{
System.out.println("Fallo la Grabación");
}

}

public void crearVentana(){
Ventana frame = new Ventana();
frame.setVisible(true); //NECESARIO PARA QUE SE MUESTRE
desktop.add(frame);//AGREGO LA NUEVA VENTANA AL CONTENEDOR DE VENTANAS INTERNAS
try{
frame.setSelected(true);
}catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.OK_OPTION);
}
}

// principal
public static void main(String [] ar)
{
try{ // esto sirve para darle la apariencia de windows
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}catch(Exception e){
System.out.println(e);
}
num1panel Objeto=new num1panel("ejercicio 1");
Objeto.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //terminar procesos al cerrar ventana
Objeto.show(); // mostrar ventana
}

}//fin class num1panel

class Ventana extends JInternalFrame{
public static int numVentana = 1;
public static int x = 45, y = 45;

public Ventana(){
super("Ventana #"+ (numVentana++),//título de la ventana
true, //resizable
true, //closable
true, //maximizable
true);//iconifiable

setSize(300, 200); //EL TAMAÑO QUE TENDRA CADA VENTANA INTERNA...

setLocation((x*numVentana)/2, (y*numVentana)/2); //POSICION DE LA VENTANA INTERNA
}//FIN DEL CONSTRUCTOR DE LA CLASE QUE REPRESENTA LAS VENTANAS INTERNAS
}//FIN DE LA CLASE QUE REPRESENTA LAS VENTANAS INTERNAS
-----------------------------

en resumen, quiero mostrar las variables nume1, pago, tipo y cliente que ingrese en la class num1panel y q se muestren en la class Ventana, que es la ventana q se abre al presionar el boton Factura.

pd: disculpen si el codigo es de muy ñoño :S
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pasar Variables entre Class en una misma pagina

Publicado por Roberto (6 intervenciones) el 17/12/2008 12:58:16
Una solución sería crearte un constructor de Ventana, donde le pase dichos atributos.


public Ventana(int nume1, Choice pago, Choice tipo, TextField cliente){

}

Otra solución es crearte los "getters" (públicos, si están en distintas clases ) de esas varibles para obtener su valor desde la clase Ventana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pasar Variables entre Class en una misma pagina

Publicado por Antonias (2 intervenciones) el 17/12/2008 14:04:54
podrias explicarme un poco mas eso de pasar las variables con el constructor :S?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar