Java - Problema con ventanas

   
Vista:

Problema con ventanas

Publicado por drjouse (1 intervención) el 24/11/2007 18:53:57
Hola buenas,

llevo un dia liao con un problema que me ha surgido trabajando con ventanas.

Estoy haciendo una especie de agenda.

He hecho una aplicacion en una ventana en la que inserto, busco y elimino (con botones) el nombre, direccion y telefono (contactos - TextFields). Cuando pulso en uno de los botones, dependiendo de cual, me inserta, busca o elimina en una tabla que me he creado. Hasta aqui todo genial.

El problema es que tengo otro boton, el cual, cuando lo pulso me debe abrir otra ventana (con un TextArea), y que ahi me salga el listado de todos los contactos que tenga en la tabla.
Total, que me abre la ventana pero no es capaz de coger los datos de la tabla. Supongo que de alguna manera la ventana principal no esta conectada con la que abro, vamos, eso creo yo.

He aqui el codigo de la aplicacion. A ver si podeis echarme una mano que estoy bloqueado.

Gracias.

package miVentana;

import java.awt.*;
import java.awt.event.*;

public class miVentana extends Frame{
Label lblNom, lblDir, lblTel;
TextField txtNom, txtDir, txtTel, txt;
Button btnBuscar,btnBuscarSig,btnAñadir,btnEliminar,btnSalir,btnGenerarLista;
CListaTfno listadetelefonos = new CListaTfno();
String nom,dir,cad;
long tel;
CPersona persona;
int i,k;
TextArea listado;
Panel panelAlto,panelMedio,panelBajo,panelNuevaVentana;

public miVentana() {
iniciarComponentes();
}

public miVentana(String titulo){
panelNuevaVentana = new Panel();
listado = new TextArea(30,60);

add(panelNuevaVentana);
panelNuevaVentana.add(listado);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we){
dispose();
}
});

pack();
setTitle(titulo);
}

public void iniciarComponentes(){

GridLayout gl = new GridLayout(3,4,5,5);
panelAlto = new Panel(gl);
Label lblEspacio = new Label("");
lblNom = new Label("Nombre:",Label.CENTER);
txtNom = new TextField(20);
Label lblEspacio2 = new Label("");

Label lblEspacio3 = new Label("");
lblDir = new Label("Dirección:",Label.CENTER);
txtDir = new TextField(20);
Label lblEspacio4 = new Label("");

Label lblEspacio5 = new Label("");
lblTel = new Label("Teléfono:",Label.CENTER);
txtTel = new TextField(20);
Label lblEspacio6 = new Label("");

panelMedio = new Panel();
txt = new TextField(50);

panelBajo = new Panel();
FlowLayout flow = new FlowLayout(FlowLayout.CENTER,15,25);
btnBuscar = new Button("Buscar");
btnBuscarSig = new Button("Buscar Siguiente");
btnAñadir = new Button("Añadir");
btnEliminar = new Button("Eliminar");
btnGenerarLista = new Button("Generar Lista");
btnSalir = new Button("Salir");

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we){
cerrarVentana();
}
});

ActionListener al = new ActionListener(){
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==btnSalir){
cerrarVentana();
}else{
String msg = ae.getActionCommand();
if(msg.equals("Buscar")){
metBuscar();
limpiaTextList();
}else{
if(msg.equals("Buscar Siguiente")){
metBuscarSig();
limpiaTextList();
}else{
if(msg.equals("Añadir")){
metAñadir();
limpiaTextList();
}else{
if(msg.equals("Eliminar")){
metEliminar();
limpiaTextList();
}else{
// String cad = metGenerarLista();
Gui6 listadoAgenda = new Gui6("Listado Agenda");
listadoAgenda.show();
}
}
}
}
}

}
};

btnBuscar.addActionListener(al);
btnBuscarSig.addActionListener(al);
btnAñadir.addActionListener(al);
btnEliminar.addActionListener(al);
btnGenerarLista.addActionListener(al);
btnSalir.addActionListener(al);

add("North",panelAlto);
panelAlto.setLayout(gl);
panelAlto.add(lblEspacio);
panelAlto.add(lblNom);
panelAlto.add(txtNom);
panelAlto.add(lblEspacio2);
panelAlto.add(lblEspacio3);
panelAlto.add(lblDir);
panelAlto.add(txtDir);
panelAlto.add(lblEspacio4);
panelAlto.add(lblEspacio5);
panelAlto.add(lblTel);
panelAlto.add(txtTel);
panelAlto.add(lblEspacio6);

add("Center",panelMedio);
panelMedio.add(txt);

add("South",panelBajo);
panelBajo.setLayout(flow);
panelBajo.add(btnBuscar);
panelBajo.add(btnBuscarSig).setVisible(false);
panelBajo.add(btnAñadir);
panelBajo.add(btnEliminar);
panelBajo.add(btnGenerarLista);
panelBajo.add(btnSalir);
}

public void limpiaTextList(){
this.txtNom.setText("");
this.txtDir.setText("");
this.txtTel.setText("");
}

public void metBuscar(){
int j = listadetelefonos.longitud();
nom = txtNom.getText();
if(j==0){
txt.setText("Agenda vacía");
}else{
if(txtNom.getText().equals("")){
txt.setText("Le falta por introducir el nombre");
}else{
i = listadetelefonos.buscar(nom,0);
k = i;
if(i==-1){
txt.setText("El nombre no se encuentra en la agenda");
}else{
CPersona x = listadetelefonos.valorEn(i);
txt.setText("Nombre: "+x.obtenerNombre()+", Dirección: "+x.obtenerDireccion()+", Teléfono: "+x.obtenerTelefono());
}
}
}
}

public void metBuscarSig(){
if(listadetelefonos.longitud()==0){
txt.setText("La agenda está vacía");
}else{
if(k>=listadetelefonos.longitud()-1){
txt.setText("No hay ningún otro contacto llamado \""+nom+"\" en la agenda");
}else{
k++;
k = listadetelefonos.buscar(nom,k);
if(k==-1){
txt.setText("No hay más "+nom+" en la agenda");
}else{
CPersona x = listadetelefonos.valorEn(k);
txt.setText("Nombre: "+x.obtenerNombre()+", Dirección: "+x.obtenerDireccion()+", Teléfono: "+x.obtenerTelefono());
}
}
}
}

public void metAñadir(){
if(txtNom.getText().equals("") || txtDir.getText().equals("") || txtTel.getText().equals("")){
txt.setText("Le falta por introducir algún parámetro");
}else{
nom = txtNom.getText();
dir = txtDir.getText();
tel = Long.parseLong(txtTel.getText());
listadetelefonos.añadir(persona=new CPersona(nom,dir,tel));
txt.setText("Contacto añadido");
}

}

public void metEliminar(){
if(listadetelefonos.longitud()==0){
txt.setText("La agenda está vacía");
}else{
if(txtTel.getText().equals("")){
txt.setText("Le falta introducir el teléfono");
}else{
tel = Long.parseLong(txtTel.getText());
if(listadetelefonos.eliminar(tel)){
txt.setText("Registro Eliminado");
}else{
txt.setText("Teléfono no encontrado");
}
}
}
}

public String metGenerarLista(){
if(listadetelefonos.longitud()==0){
listado.insert(("Lista vacia"),0);
}else{
for(int n=0;n<listadetelefonos.longitud();n++){
CPersona x = listadetelefonos.valorEn(n);
return ("Nombre: "+x.obtenerNombre()+", Dirección: "+x.obtenerDireccion()+", Teléfono: "+x.obtenerTelefono()+"\n");
}
}
return null;
}

public void cerrarVentana(){
System.exit(0);
}

public static void main(String[] args) {
miVentana ventana = new miVentana();
ventana.setTitle("Agenda");
ventana.setSize(600, 220);
ventana.setResizable(false);
ventana.show();
}
}
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:Problema con ventanas

Publicado por mario (1 intervención) el 24/11/2007 23:06:36
porque no pones un JCACA y te lo comes
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