• Jueves 28 de Marzo de 2024, 13:05

Autor Tema:  Problema con un cuadro de dialogo  (Leído 1110 veces)

giorgione

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Problema con un cuadro de dialogo
« en: Jueves 14 de Agosto de 2008, 01:02 »
0
Saludos a toda la comunidad de solocodigo y lamneto haberme ausentado tanto debido a problemas personales.
Recientemente estoy desarrollando un sistema que reegistra las rutas y turnos de una empresa de transportes interprovincial
al ejecutarlo muestra un formulario que tiene una barrra de menu; mediante el 1º item: Mantenimiento accedo a Rutas y de ahi a Nuevo, luego aparece un cuadro de Dialogo(que he llamado CDialogoNuevo) donde ingreso la tarifa y el nombre de la ciudad (datos para registrar nueva ruta), ademas consta de dos botones: Agregar e Ingresar; el proceso es ciclico y almaceno los datos de rutas en una lista (las operaciones de lista las implemento en Clista ), hasta ahi todo bien pero quise agregarle eventos a los botones y a la jtextfield de ciudad, donde he tenido problemas.
Al activarse el CDialogoNuevo el boton Agregar esta desactivado y el boton ingresar me permite entrar los datos necesarios para crear los nuevos nodos de la lista que almacenara rutas a la vez que limpia los jtextfields para ingresar nuevos datos el proceso termina cuando en la jTextField de ciudad agrego un caracter no alfanumerico es entonces cuando se activa el boton agregar (aunque creo que lo cambiare por salir)   que al pulsarlo cierra el CDialogoNuevo y termina el proceso, y esta la cuestion por la cual me he atascado y no se que hacer ¿podrian ayudarme? adjunto el codigo que he hecho hasta ahora:

Ademas tambien tengo otra duda con mostrar los datos de rutas, lo que he hecho hasta ahora es crear un aclase ClistadoRuta
para ello pero esta clase se deriva de JFrame y no se como enlazarle los datos ingresados (operacion hecha en ClistaRutas que es una clase) si Java no permite la herencia multiple de clase como hago para que los datos hallados en ClistaRutas se pasen a ClistadoRuta

este es el codigo de menu:
******************************************************************************************************************************************
//Clase principal que mostrará el menú
public class CMenu extends JFrame{
  JPanel jPanelMenu = new JPanel();
  XYLayout xYLayout1 = new XYLayout();
  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jmMantenimiento = new JMenu();
  JMenu jmConsultas = new JMenu();
  JMenuItem jmConsultasRutas = new JMenuItem();
  JMenuItem jmConsultasTurnos = new JMenuItem();
  JMenuItem jmConsultasPasajeros = new JMenuItem();
  JMenu jmMantenimientoRutas = new JMenu();
  JMenuItem jmMantenRutasModificar = new JMenuItem();
  JMenuItem jmMantenRutasAnular = new JMenuItem();
  JMenuItem jmMantenRutasListado = new JMenuItem();
  JMenu jmMantenimientoTurnos = new JMenu();
  JMenuItem jmMantenTurnosIngreso = new JMenuItem();
  JMenuItem jmMantenTurnosModificar = new JMenuItem();
  JMenuItem jmMantenTurnosAnular = new JMenuItem();
  JMenuItem jmMantenTurnosListado = new JMenuItem();
  JMenuItem jmMantenRutasNuevo = new JMenuItem();
  //constructor
  public CMenu() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    setVisible(true);
    setSize(2147483647,2147483647);
    setTitle("Transportes ABC: Menu Principal");
    initComponents();
    //Cuadros de Dialogo Usados
    final CDialogoNuevo dialogoNuevo = new CDialogoNuevo();
    final CDialogoBuscarCod dialogoBuscarCod = new CDialogoBuscarCod();
    final CListadoRutas listadoRutas = new CListadoRutas();
    //evento para dialogoNuevo
    jmMantenRutasNuevo.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent Evento){
          dialogoNuevo.setVisible(true);
        }
      }
      );
    //evento para dialogoBuscarCod
    jmMantenRutasModificar.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent evento){
          dialogoBuscarCod.setVisible(true);
        }
      }
      );
      //evento para listadoRutas
      jmMantenRutasListado.addActionListener(
        new ActionListener(){
          public void actionPerformed(ActionEvent evento){
            listadoRutas.setVisible(true);
          }
        }
      );
  }//fin Constructor
  public void initComponents(){
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  }
  public static void main(String[] args) {
    CMenu CMenu1 = new CMenu();

  }
  private void jbInit() throws Exception {
    jPanelMenu.setLayout(xYLayout1);
    this.setJMenuBar(jMenuBar1);
    jmMantenimiento.setText("Mantenimiento");
    jmConsultas.setText("Consultas");
    jmConsultasRutas.setText("Rutas");
    jmConsultasTurnos.setText("Turnos");
    jmConsultasPasajeros.setText("Pasajeros");
    jmMantenimientoRutas.setText("Rutas");
    jmMantenRutasModificar.setText("Modificar");
    jmMantenRutasAnular.setText("Anular");
    jmMantenRutasListado.setText("Listado");
    jmMantenimientoTurnos.setText("Turnos");
    jmMantenTurnosIngreso.setText("Ingreso");
    jmMantenTurnosModificar.setText("Modificar");
    jmMantenTurnosAnular.setText("Anular");
    jmMantenTurnosListado.setText("Listado");
    jmMantenRutasNuevo.setText("Nuevo");
    this.getContentPane().add(jPanelMenu, BorderLayout.CENTER);
    jMenuBar1.add(jmMantenimiento);
    jMenuBar1.add(jmConsultas);
    jmMantenimiento.add(jmMantenimientoRutas);
    jmMantenimiento.add(jmMantenimientoTurnos);
    jmConsultas.add(jmConsultasRutas);
    jmConsultas.add(jmConsultasTurnos);
    jmConsultas.add(jmConsultasPasajeros);
    jmMantenimientoRutas.add(jmMantenRutasNuevo);
    jmMantenimientoRutas.add(jmMantenRutasModificar);
    jmMantenimientoRutas.add(jmMantenRutasAnular);
    jmMantenimientoRutas.add(jmMantenRutasListado);
    jmMantenimientoTurnos.add(jmMantenTurnosIngreso);
    jmMantenimientoTurnos.add(jmMantenTurnosModificar);
    jmMantenimientoTurnos.add(jmMantenTurnosAnular);
    jmMantenimientoTurnos.add(jmMantenTurnosListado);
  }
}
 ******************************************************************************************************
este es el codigo de CDialogoNuevo
*******************************************************************************************************
//Creacion de un cuadro de dialogo que ingrese datos para una nueva ruta
public class CDialogoNuevo extends JDialog {
  JPanel panel1 = new JPanel();
  XYLayout xYLayout1 = new XYLayout();
  JLabel jLCiudad = new JLabel();
  JLabel jLTarifa = new JLabel();
  JTextField jTfCiudad = new JTextField();
  JTextField jTfTarifa = new JTextField();
  JButton jBtnIngresar = new JButton();
  JButton jBtnAceptar = new JButton();
  public CDialogoNuevo(Frame frame, String title, boolean modal) {
    super(frame, title, modal);
    try {
      jbInit();
      pack();
    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
    setSize(490,300);
  }

  public CDialogoNuevo() {
    this(null, "", false);
  }

  private void jbInit() throws Exception {
    panel1.setLayout(xYLayout1);
    jLCiudad.setText("Ciudad");
    jLTarifa.setText("Tarifa");
    jTfCiudad.setText("");
    jTfCiudad.setColumns(30);
    jTfTarifa.setText("");
    jTfTarifa.setColumns(4);
    jBtnIngresar.setText("Ingresar");
    jBtnAceptar.setEnabled(false);
    jBtnAceptar.setText("Aceptar");
    getContentPane().add(panel1);
    panel1.add(jLCiudad,      new XYConstraints(41, 74, 90, -1));
    panel1.add(jLTarifa,      new XYConstraints(41, 120, 90, -1));
    panel1.add(jTfCiudad,  new XYConstraints(135, 72, -1, -1));
    panel1.add(jTfTarifa,  new XYConstraints(135, 117, -1, -1));
    panel1.add(jBtnAceptar,      new XYConstraints(270, 173, 85, 31));
    panel1.add(jBtnIngresar, new XYConstraints(76, 173, 90, 30));
  }
}
*********************************************************************************************************
este es el codigo de Clista
***********************************************************************************************************
public class Clista extends CRuta {
  //referencia al primer elemento de la lista
  private Nodo cabeza=null;
  //Definimos nodo
  private class Nodo{
    private Nodo sig;
    private CRuta info;
  }
  //constructor sin argumentos
  public Clista() {
  }
  //Metodos
  public Nodo crearNodo(CRuta valor){
    Nodo nuevo = new Nodo();
    nuevo.info=valor;
    return nuevo;
  }

  public void insFinal(CRuta valor){
    Nodo nuevo,p;
    nuevo=crearNodo(valor);
    p=cabeza;
    if(p!=null){
      while(p.sig!=null)
        p=p.sig;
      p.sig=nuevo;
    }
    else{  //cuando no hay elementos en la lista
      cabeza=nuevo;
    }
  }//fin insfinal

  public Nodo buscarNodo(CRuta valor){
    Nodo p;
    for(p=cabeza;p!=null;p=p.sig)
      if(p.info==valor)
        return p;
      return null;
  }//fin buscarNodo
}
*********************************************************************************************************************************************
este es el codigo deCRuta que le pasara a Clista los datos para el info de la lista enlazada (los datos de ruta: ciudad y tarifa)
**************************************************************************************************************************************************
public class CRuta extends CDialogoNuevo{
  public String ciudad;
  public double tarifa;
  public static int num=0;
  //constructor sin parametros
  public CRuta() {
  }
}
**************************************************************************************************
este es el codigo de ClistaRuta
**************************************************************************************************
public class ClistaRutas extends Clista {
  //reaferenciamos a lista
  CRuta ruta01 = new CRuta();
  //creamos instancia lista01
  Clista lista01 = new Clista();
  //constructor sin argumentos
  public ClistaRutas(){
  }

  public void ingresar(){
     ruta01.ciudad = jTfCiudad.getText();
     ruta01.tarifa = Double.parseDouble(jTfTarifa.getText());
     lista01.insFinal(ruta01);
  }
}
***************************************************************************************************
este es el codigo de CListadoRuta que mostrar en pantalla un listado de los datos ingresados
*****************************************************************************************************
public class CListadoRutas extends JFrame {
  JPanel jPanel1 = new JPanel();
  XYLayout xYLayout1 = new XYLayout();
  JPanel jPanel2 = new JPanel();
  JLabel jLciudad = new JLabel();
  XYLayout xYLayout2 = new XYLayout();
  JLabel jLcodigo = new JLabel();
  JTextField jTFCiudad = new JTextField();
  JPanel jPanel3 = new JPanel();
  XYLayout xYLayout3 = new XYLayout();
  JTextField jTfCodigo = new JTextField();
  JScrollPane jScrollPane1 = new JScrollPane();
  JPanel jPanel4 = new JPanel();
  JLabel jLabel1 = new JLabel();
  XYLayout xYLayout4 = new XYLayout();
  JLabel jLabel2 = new JLabel();
  JLabel jLabel3 = new JLabel();
  JLabel jLabel4 = new JLabel();
  JTextPane jTextPane1 = new JTextPane();
  JButton jBtnBuscarCiudad = new JButton();
  JButton jBtnBuscarCodigo = new JButton();

  public CListadoRutas() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    setSize(600,600);
  }
  private void jbInit() throws Exception {
    jPanel1.setLayout(xYLayout1);
    jPanel2.setEnabled(true);
    jPanel2.setForeground(Color.black);
    jPanel2.setBorder(BorderFactory.createEtchedBorder());
    jPanel2.setOpaque(true);
    jPanel2.setPreferredSize(new Dimension(370, 34));
    jPanel2.setToolTipText("");
    jPanel2.setVerifyInputWhenFocusTarget(true);
    jPanel2.setLayout(xYLayout2);
    jLciudad.setHorizontalAlignment(SwingConstants.CENTER);
    jLciudad.setHorizontalTextPosition(SwingConstants.TRAILING);
    jLciudad.setText("CIUDAD -->");
    jLcodigo.setHorizontalAlignment(SwingConstants.CENTER);
    jLcodigo.setText("CODIGO -->");
    jTFCiudad.setText("");
    jTFCiudad.setColumns(30);
    jPanel3.setEnabled(true);
    jPanel3.setBorder(BorderFactory.createEtchedBorder());
    jPanel3.setLayout(xYLayout3);
    jTfCodigo.setText("");
    jTfCodigo.setColumns(4);
    jPanel4.setBorder(BorderFactory.createEtchedBorder());
    jPanel4.setLayout(xYLayout4);
    jLabel1.setBackground(Color.lightGray);
    jLabel1.setBorder(BorderFactory.createLineBorder(Color.black));
    jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel1.setText("STATUS");
    jLabel2.setText("CÓDIGO");
    jLabel2.setBackground(Color.lightGray);
    jLabel2.setBorder(BorderFactory.createLineBorder(Color.black));
    jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel3.setText("CIUDAD");
    jLabel3.setBackground(Color.lightGray);
    jLabel3.setBorder(BorderFactory.createLineBorder(Color.black));
    jLabel3.setVerifyInputWhenFocusTarget(true);
    jLabel3.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel4.setText("TARIFA");
    jLabel4.setBackground(Color.lightGray);
    jLabel4.setBorder(BorderFactory.createLineBorder(Color.black));
    jLabel4.setHorizontalAlignment(SwingConstants.CENTER);
    jTextPane1.setText("");
    jBtnBuscarCiudad.setText("Buscar");
    jBtnBuscarCodigo.setText("Buscar");
    jPanel2.add(jLciudad, new XYConstraints(8, 7, 130, 22));
    jPanel2.add(jTFCiudad, new XYConstraints(115, 10, -1, -1));
    jPanel2.add(jBtnBuscarCiudad,   new XYConstraints(466, 6, -1, -1));
    jPanel1.add(jPanel4, new XYConstraints(8, 118, 547, -1));
    jPanel1.add(jPanel3, new XYConstraints(2, 63, 556, 48));
    jPanel3.add(jLcodigo, new XYConstraints(48, 10, -1, -1));
    jPanel3.add(jTfCodigo, new XYConstraints(116, 7, -1, -1));
    jPanel3.add(jBtnBuscarCodigo,   new XYConstraints(468, 11, -1, -1));
    jPanel1.add(jPanel2, new XYConstraints(3, 18, 555, 41));
    jPanel4.add(jLabel1,      new XYConstraints(-2, 0, 144, 22));
    jPanel4.add(jLabel2,   new XYConstraints(142, 0, 92, 22));
    jPanel4.add(jLabel3,          new XYConstraints(234, 0, 175, 22));
    jPanel4.add(jLabel4,     new XYConstraints(408, 0, 135, 22));
    jPanel1.add(jScrollPane1,   new XYConstraints(7, 154, 548, 319));
    jScrollPane1.getViewport().add(jTextPane1, null);
    this.getContentPane().add(jPanel1, BorderLayout.CENTER);
  }
}
************************************************************
este es el codigo de CDialogoBuscarCod que lo adjunto por si accaso pero aun no he trabajado mucho en el
*******************************************************************************************
public class CDialogoBuscarCod extends JDialog {
  JPanel panel1 = new JPanel();
  JLabel jLBuscar = new JLabel();
  XYLayout xYLayout1 = new XYLayout();
  JTextField jTfBuscar = new JTextField();
  JButton jBtnBuscar = new JButton();

  public CDialogoBuscarCod(Frame frame, String title, boolean modal) {
    super(frame, title, modal);
    try {
      jbInit();
      pack();
    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
    setSize(300,200);
  }

  public CDialogoBuscarCod() {
    this(null, "", false);
  }

  private void jbInit() throws Exception {
    panel1.setLayout(xYLayout1);
    jLBuscar.setFont(new java.awt.Font("Dialog", 1, 11));
    jLBuscar.setText("CODIGO DE RUTA -->");
    jBtnBuscar.setText("Buscar");
    jTfBuscar.setText("");
    jTfBuscar.setColumns(4);
    getContentPane().add(panel1);
    panel1.add(jLBuscar,   new XYConstraints(32, 33, 112, -1));
    panel1.add(jTfBuscar, new XYConstraints(151, 33, -1, -1));
    panel1.add(jBtnBuscar, new XYConstraints(96, 78, 84, 31));
  }
}