09/12/05

* Otro tutorial , por falta de información que no quede , Tutorial de Java - Comunicaciones en Red, Conceptos Básicos, a que ya nos suena de algo...  
   
Estadisticas y contadores web gratis
Manuales Oposiciones
     
   

Métodos para obtener parámetros de la red de nuestro host

La IP

El otro día vimos como obtener la IP local de nuestro host. Ese método seria válido si lo que desamos es obtener un array con cada uno de los 4 octetos de la ip. Pero para obtener solo el valor de la IP como una cadena, seria:

      //Obtengamos nuestra IP local
      /* Este método valdria para tener los 4 octetos
       * InetAddress miIp=InetAddress.getLocalHost();
       * Integer IP[]={0,0,0,0};
       * byte direccionIp[]=miIp.getAddress();
       * for (int i=0;i<4;i++) {
       *	IP[i]=(int)direccionIp[i];
       *         if (IP[i]<0) IP[i]=IP[i]+256;
       *      }//for
       */
      //Pero para ir al grano es mejor este método
      String IP=InetAddress.getLocalHost().getHostAddress();    
El Nombre de host
      //Obtengamos  nuestro Nombre de Host
      String miNombre=InetAddress.getLocalHost().getHostName();
El Nombre canónico o Dominio
      //El nombre canonico o Dominio
      String miDominio=InetAddress.getLocalHost().getCanonicalHostName();
El GateWay o Puerta de enlace y la máscara de subred : Un bocata de tortilla para quién me lo diga... Estamos en ello.
El Usuario local
       //El usuario
       String miUser = System.getProperty("user.name");
.......... Pues todos estos "ladrillos" los voy a usar para otro proyecto:

Las Urracas Parlanchinas

   Va a ser una aplicación cliente/servidor , y va a intentar implementar una sencilla mensajería de texto

Me he liado a priori con la interfaz y ciertos detalles.

En el menú se puede abrir nuevos JFrames , es decir nuevas conversaciones o ventanas , para cerrar todas las conversaciones (ventanas) se haria

 con Salir (  System.exit(0);) es decir salir de la aplicación desde el menú , para cerrar una sola ventana se clika en la x de la ventana, para ello se define

 el método del JFrame así: setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); , cada ventana hija se crea sin menú y

 A cerca de. Para controlar esto creo un argumento en el constructor del JFrame y según lo que valga se crea la ventana (el JFrame ) con o sin menú

( JMenuBar.setVisible(true o false) ).

 

Por ahora solo tengo el interfaz gráfico y la obtención de la IP, Host , Usuario y dominio, todo calculado en el método miLan().

Este método se lanza ante el evento "Ventana Activada" , es decir al crearse o activarse  ventana

 private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
       try{
           miLan();
       }catch(Exception e){}
       
    }//fin evento al activarse  ventana

 

     // Metodo miLan()
     void miLan()throws Exception{
      //Obtengamos nuestra IP local
      /* Este método valdria para tener los 4 octetos
       InetAddress miIp=InetAddress.getLocalHost();
      Integer IP[]={0,0,0,0};
      byte direccionIp[]=miIp.getAddress();
      for (int i=0;i<4;i++) {
		IP[i]=(int)direccionIp[i];
                if (IP[i]<0) IP[i]=IP[i]+256;
      }//for */
      //Pero para ir al grano es mejor este método
      String IP=InetAddress.getLocalHost().getHostAddress();    
     //Visualizamos nuestra IP  
      //jTextField3.setText(IP[0]+"."+IP[1]+"."+IP[2]+"."+IP[3]);
      jTextField3.setText(IP);
     //Obtengamos  nuestro Nombre de Host
      String miNombre=InetAddress.getLocalHost().getHostName();
      jTextField5.setText(miNombre);
      //La Máscara
      //????????????????????
      //El GW o puerta de enlace
      //???????????????????
      //El nombre canonico o host.dominio
      String miDominio=InetAddress.getLocalHost().getCanonicalHostName();
      jTextField2.setText(miDominio);
      //El usuario
       String miUser = System.getProperty("user.name");
       jTextField1.setText(miUser);
     
     }

Falta la parte interesante , el cliente/servidor, para otro día

Solo resaltar que desde el menú lanzo este jOptionPane para preguntar si se desea salir de la aplicación

el codigo:

  private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {   
 if(JOptionPane.showConfirmDialog(JOptionPane.getFrameForComponent(getParent()),
"¿Desea salir de la aplicación?","Salir",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
         { //Depura
          jLabel10.setText("Has cerrado");
          //Aquí iria cerrar el JFrame
         }
    }//fin evento accion efectuada en el item1 de jMenu

 

     
  He aquí un cliente y un servidor UDP de http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=vellog , que me va a venir estupendamente

para tomar ideas para el motor del Chat. Mi idea a priori es que va a ser una mensajería no orientada a conexión , UDP.

Programa cliente

import java.net.* ;
import java.io.* ;
import java.util.*;

class clienteUPD
{
        public static void main(String[] args)
        {
            try
            {
                    String cadena = null;
                    byte[] paqueteBytes = null;
                    DatagramPacket paqueteUDP = null;

                    InetAddress direccion = InetAddress.getByName("localhost") ;

                    long inicio = System.currentTimeMillis();

                    for(int i=0;i<1000;i++)
                    {
                        DatagramSocket socketUDP = new DatagramSocket() ;
                        cadena = i + " La hora es " + new Date().toString();
                        paqueteBytes = cadena.getBytes() ;
                        //Para mis intereses he de buscar la manera de que dirección se pueda
                      
                        paqueteUDP = new DatagramPacket(paqueteBytes, paqueteBytes.length,direccion,8031);
                        socketUDP.send(paqueteUDP) ;
                        socketUDP.close() ;

                    }

                    long fin = System.currentTimeMillis() - inicio;
                    System.out.println("El tiempo transcurrido es " + fin + " milisegundos");
                }
            catch (IOException e)
            {
                        System.out.println(e) ;
            }

        }
}

 
Y ahora el servidor
import java.net.* ;
import java.io.* ;

public class servidorUDP
{
    public static void main(String[] args)
    {
        try
        {
            int tamaPaquete = 1024;
            DatagramSocket s = new DatagramSocket(8031) ;

            while (true)
            {
                    DatagramPacket datagramaUDP =  new DatagramPacket( new byte [tamaPaquete], tamaPaquete) ;
                    s.receive(datagramaUDP) ;

                    String msg = new String(datagramaUDP.getData()).trim() ;
                    System.out.println("Recibido mensaje " + datagramaUDP.getAddress().getHostName() + " - " + msg) ;
            }
        }
        catch (Exception e)
        {
            System.out.println("Error en proceso");
        }
    }
}    

...Continuará...

 

   
 

 Hoy es otro día. Continuo con el project "las Urracas Parlanchinas".

Me habia quedado en implementar el motor de la mensajeria , un cliente/servidor a traves de UDP , para lo que voy a coger recorte de los ejemplos

anteriores

El código hasta ahora está de esta forma: Falta implementar el cliente , y lo que es más importante , hacer que no se quede block la aplicación al arrancar

el servidor  UDP con el botón ON, para solucionar esto habrá que recurrir a hilos (thread) .... Otro día lo soluciono , que hoy es viernes ...

/*
 * UrracaJFrame.java
 *
 * Created on 8 de diciembre de 2005, 9:40
 */

package lasurracasparlanchinas;
import java.net.*;
import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/** Powered by NetBeans 4.1
 * idea original de los método servidor y cliente en:
 * http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=vellog 
 * @author  javcasta2002@yahoo.com
 */
public class UrracaJFrame extends javax.swing.JFrame {
    //declaramos lo global
    //esta variable la tendré que cambiar a false ,            es para pruebas
    public boolean opcion=true;
    public static Integer ventanas=0;
    public int m=1;
    
    
    
    /** Creates new form UrracaJFrame */
    public UrracaJFrame(int m) {
 
 
        super("Las Urracas Parlanchinas.v1.Alfa");//le damos título al Frame 
        ventanas++;//numero de conversaciones o ventanas para controlar la posición de las hijas
        //para que no se salga de la pantalla
        if (ventanas>6) ventanas=1;
        this.m=m;
        setLocation(50*ventanas,50*ventanas);//aquí controlo donde aparecerán
        initComponents();//Método donde Inicializamos todo el GUI.
        setVisible(true);//que se vea
    }
   
    // Metodo miLan()
     void miLan()throws Exception{
      //Obtengamos nuestra IP local
      /* Este método valdria para tener los 4 octetos
       InetAddress miIp=InetAddress.getLocalHost();
      Integer IP[]={0,0,0,0};
      byte direccionIp[]=miIp.getAddress();
      for (int i=0;i<4;i++) {
		IP[i]=(int)direccionIp[i];
                if (IP[i]<0) IP[i]=IP[i]+256;
      }//for */
      //Pero para ir al grano es mejor este método
      String IP=InetAddress.getLocalHost().getHostAddress();    
     //Visualizamos nuestra IP  
      //jTextField3.setText(IP[0]+"."+IP[1]+"."+IP[2]+"."+IP[3]);
      jTextField3.setText(IP);
     //Obtengamos  nuestro Nombre de Host
      String miNombre=InetAddress.getLocalHost().getHostName();
      jTextField5.setText(miNombre);
      //La Máscara
      //????????????????????
      //El GW o puerta de enlace
      //???????????????????
      //El nombre canonico o host.dominio
      String miDominio=InetAddress.getLocalHost().getCanonicalHostName();
      jTextField2.setText(miDominio);
      //El usuario
       String miUser = System.getProperty("user.name");
       jTextField1.setText(miUser);
     
     }//fin método miLan()
     void servidor(String spuerto){
         int cuenta=0;
         Integer elspuerto;
         String[] Nmsg= new String[101];
         
            spuerto=jTextField9.getText();
            elspuerto=Integer.parseInt(spuerto);
            
        
          
        try
        {
            int tamaPaquete = 1024;
            DatagramSocket s = new DatagramSocket(elspuerto) ;
            cuenta++;
            //Tope 100 msgs, al llegar al tope borramos pizarra y vuelta a empezar
            if (cuenta>100) {cuenta=1; for(int i=0;i<(cuenta+1);i++) Nmsg[cuenta]="";}
            while (jCheckBox1.isSelected())
            {
                    DatagramPacket datagramaUDP =  new DatagramPacket( new byte [tamaPaquete], tamaPaquete) ;
                    s.receive(datagramaUDP) ;

                    String msg = new String(datagramaUDP.getData()).trim() ;
                    Nmsg[cuenta]="Recibido mensaje " + datagramaUDP.getAddress().getHostName() + " - " + msg;
                    for(int i=0;i<(cuenta+1);i++) msg=msg+Nmsg[cuenta];
                    jTextArea1.setText(msg);
                 //System.out.println("Recibido mensaje " + datagramaUDP.getAddress().getHostName() + " - " + msg) ;
            }
        }
        catch (Exception e)
        {
            jLabel10.setText("Depura: Error en proceso");
        }
         }//fin servidor
     
    
    
    /** 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.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jTextField2 = new javax.swing.JTextField();
        jPanel2 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jTextField3 = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jTextField5 = new javax.swing.JTextField();
        jTextField7 = new javax.swing.JTextField();
        jPanel3 = new javax.swing.JPanel();
        jCheckBox1 = new javax.swing.JCheckBox();
        jLabel7 = new javax.swing.JLabel();
        jToggleButton1 = new javax.swing.JToggleButton();
        jTextField9 = new javax.swing.JTextField();
        jTextField10 = new javax.swing.JTextField();
        jCheckBox2 = new javax.swing.JCheckBox();
        jTextField4 = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jPanel4 = new javax.swing.JPanel();
        jTextField11 = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jLabel10 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        if (m==1) jMenuBar1.setVisible(true);
        if (m==0) jMenuBar1.setVisible(false);
        jMenu1 = new javax.swing.JMenu();
        jSeparator1 = new javax.swing.JSeparator();
        jMenuItem1 = new javax.swing.JMenuItem();
        jSeparator3 = new javax.swing.JSeparator();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jSeparator2 = new javax.swing.JSeparator();
        jMenuItem2 = new javax.swing.JMenuItem();

        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setMaximizedBounds(new java.awt.Rectangle(200, 200, 700, 400));
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowActivated(java.awt.event.WindowEvent evt) {
                formWindowActivated(evt);
            }
        });

        jPanel1.setLayout(null);

        jPanel1.setBorder(new javax.swing.border.TitledBorder(null,
 "Tu usuario y dominio", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
 javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11),
 new java.awt.Color(255, 153, 0)));
        jLabel1.setText(" Usuario:");
        jPanel1.add(jLabel1);
        jLabel1.setBounds(10, 20, 50, 14);

        jTextField1.setEditable(false);
        jPanel1.add(jTextField1);
        jTextField1.setBounds(60, 20, 90, 20);

        jLabel2.setText(" @");
        jPanel1.add(jLabel2);
        jLabel2.setBounds(150, 20, 20, 14);

        jTextField2.setEditable(false);
        jPanel1.add(jTextField2);
        jTextField2.setBounds(170, 20, 140, 20);

        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, 320, 50));

        jPanel2.setLayout(null);

        jPanel2.setBorder(new javax.swing.border.TitledBorder(null, "Tus par\u00e1metros de red",
 javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, 
new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(102, 0, 255)));
        jLabel3.setText(" IP:");
        jPanel2.add(jLabel3);
        jLabel3.setBounds(10, 20, 17, 14);

        jTextField3.setEditable(false);
        jPanel2.add(jTextField3);
        jTextField3.setBounds(50, 20, 110, 20);

        jLabel5.setText("Host:");
        jPanel2.add(jLabel5);
        jLabel5.setBounds(170, 20, 40, 20);

        jTextField5.setEditable(false);
        jPanel2.add(jTextField5);
        jTextField5.setBounds(210, 20, 110, 20);

        jTextField7.setText("4321");
        jPanel2.add(jTextField7);
        jTextField7.setBounds(40, 80, 40, 20);

        getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 10, 330, 50));

        jPanel3.setLayout(null);

        jPanel3.setBorder(new javax.swing.border.TitledBorder(null, "Conversaci\u00f3n",
 javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION,
 new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(255, 0, 0)));
        jCheckBox1.setFont(new java.awt.Font("Tahoma", 0, 10));
        jCheckBox1.setSelected(true);
        jCheckBox1.setText(" Permitir Escuchar por puerto");
        jPanel3.add(jCheckBox1);
        jCheckBox1.setBounds(10, 20, 170, 21);

        jLabel7.setForeground(new java.awt.Color(153, 0, 153));
        jLabel7.setIcon(new javax.swing.ImageIcon("C:\\urracas\\sordo.jpg"));
        jLabel7.setText("No hay conversaci\u00f3n");
        jLabel7.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED));
        jPanel3.add(jLabel7);
        jLabel7.setBounds(10, 90, 300, 110);

        jToggleButton1.setFont(new java.awt.Font("Tahoma", 3, 12));
        jToggleButton1.setForeground(new java.awt.Color(255, 51, 51));
        jToggleButton1.setText("ON");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        jPanel3.add(jToggleButton1);
        jToggleButton1.setBounds(250, 30, 60, 23);

        Integer ServerPort= ventanas + 4320;
        jTextField9.setText(ServerPort.toString());
        jPanel3.add(jTextField9);
        jTextField9.setBounds(190, 20, 50, 20);

        Integer scliente = 5431 + ventanas;
        jTextField10.setText(scliente.toString());
        jPanel3.add(jTextField10);
        jTextField10.setBounds(190, 40, 50, 20);

        jCheckBox2.setFont(new java.awt.Font("Tahoma", 0, 10));
        jCheckBox2.setSelected(true);
        jCheckBox2.setText(" Permitir Hablar por puerto");
        jCheckBox2.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                jCheckBox2ItemStateChanged(evt);
            }
        });

        jPanel3.add(jCheckBox2);
        jCheckBox2.setBounds(10, 40, 170, 20);

        jTextField4.setText("127.0.0.1");
        jPanel3.add(jTextField4);
        jTextField4.setBounds(110, 70, 130, 20);

        jLabel4.setText("Conversar con:");
        jPanel3.add(jLabel4);
        jLabel4.setBounds(10, 70, 90, 20);

        getContentPane().add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 60, 320, 210));

        jPanel4.setLayout(null);

        jPanel4.setBorder(new javax.swing.border.TitledBorder(null, "Escribe tu frase y pulsa intro",
 javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION,
 new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(204, 204, 0)));
        jTextField11.setText("Hola . \u00bf Te gusta java sin IDE visual ? pues lo llevas claro...");
        jPanel4.add(jTextField11);
        jTextField11.setBounds(10, 30, 630, 20);

        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 270, 650, 60));

        jScrollPane1.setViewportView(jTextArea1);

        getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 60, 330, 210));

        jLabel10.setIcon(new javax.swing.ImageIcon("C:\\urracas\\diablo.gif"));
        jLabel10.setText("Depura:");
        getContentPane().add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 340, 570, 20));

        jMenu1.setText("Menu");
        jMenu1.add(jSeparator1);

        jMenuItem1.setText("Salir");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });

        jMenu1.add(jMenuItem1);

        jMenu1.add(jSeparator3);

        jMenuItem3.setText("Nueva Conversaci\u00f3n");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });

        jMenu1.add(jMenuItem3);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("A cerca de");
        jMenu2.add(jSeparator2);

        jMenuItem2.setText("a cerca de");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });

        jMenu2.add(jMenuItem2);

        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        pack();
    }
    // </editor-fold>

    private void jCheckBox2ItemStateChanged(java.awt.event.ItemEvent evt) { 
// TODO add your handling code here:
        //si está seleccionado permitir hablar por el puerto --> permitir editar caja origen de msg
        if (jCheckBox2.isSelected()) jTextField11.setEditable(true); else jTextField11.setEditable(false);
    }                                           

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {                   
// TODO add your handling code here:
        new UrracaJFrame(0).setVisible(true);
        //abrimos otro frame hijo , sin menú
    }                                          

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {         
// TODO add your handling code here:
        //lanzamos el servidor
        try{
              
              servidor(jTextField9.getText());
              opcion=true;
            }catch(Exception e){opcion=false;}
           if (opcion){
            jLabel7.setIcon(new javax.swing.ImageIcon("c:\\urracas\\urracasparlanchinas.jpg"));
            jLabel7.setText("Hay conversación");
           } else
           {jLabel7.setIcon(new javax.swing.ImageIcon("c:\\urracas\\sordo.jpg"));
            jLabel7.setText("No hay conversación");}
    }                                              

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {         
// TODO add your handling code here:
         if(JOptionPane.showConfirmDialog(JOptionPane.getFrameForComponent(getParent()),
"¿Desea salir de la aplicación?","Salir",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
         { jLabel10.setText("Has cerrado");
          //this.WindoClosing();
           System.exit(0);
         }
         

    }                                          

    private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
// TODO add your handling code here:
        //obtenemos algunos parámetros de red
       try{
           miLan();
       }catch(Exception e){}
       
    }                                    

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
        javax.swing.JOptionPane Acerca_de= new javax.swing.JOptionPane();
        Acerca_de.showMessageDialog(null,"ICFEM 2.005 - Curso de programación de aplicaciones en red con Java\n"+
              "---------------------------------------------------------------------------------------------------\n"+
              "            Las Urracas Parlanchinas v.1.Alfa.- Javier Castañón\n"+
              "         javcasta2002@yahoo.com - http://javcasta.bounceme.net\n"+
              "            'Conversador' o mensajéria a traves de sockets UDP \n"+
              "                     Y parámetros de red de localhost\n"+
              " --------------------------------------------------------------------------------------------------");

    }                                          
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                
                new UrracaJFrame(1);//lanzamos el Frame padre con menú
                
            }
        });
        
    }
    
    // Variables declaration - do not modify
    private javax.swing.JCheckBox jCheckBox1;
    private javax.swing.JCheckBox jCheckBox2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator2;
    private javax.swing.JSeparator jSeparator3;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField10;
    private javax.swing.JTextField jTextField11;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField5;
    private javax.swing.JTextField jTextField7;
    private javax.swing.JTextField jTextField9;
    private javax.swing.JToggleButton jToggleButton1;
    // End of variables declaration
    
}