Foros del Web » Programación para mayores de 30 ;) » Java »

applet y mysql

Estas en el tema de applet y mysql en el foro de Java en Foros del Web. Hola compañeros. Os escribo este post pq ando un poco desesperado. Problema: tengo un applet de un chat en java que esta constantemente a traves ...
  #1 (permalink)  
Antiguo 17/05/2011, 12:48
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 1
applet y mysql

Hola compañeros.

Os escribo este post pq ando un poco desesperado.

Problema: tengo un applet de un chat en java que esta constantemente a traves de un timer leyendo de una base de datos los usuaris que estan activos en la tabla usuaris_chat, bien esto funciona perfecto en el APPLET VIEWER el problema viene al incrustarlo dentro del navegar que el applet carga pero no tiene comunicacion con la base de datos, es como si no detectara la libreria de mysql en jar, por lo que dice, aunque si que la tiene carga en el tag adecuado, nose si esque estoy haciendo algo mal !!

Adjunto mi codigo:


Clase java principal

Código JAVA:
Ver original
  1. import java.awt .*;
  2.  import java.awt.event .*;
  3.  import javax.swing.*;
  4.  import javax.swing.Timer;
  5.  
  6. /*
  7.  * ChatApplet.java
  8.  *
  9.  * Creat el 10/05/2011, a les 19:17:44
  10.  *
  11.  * @author franki
  12.  */
  13. public class ChatApplet extends JApplet{
  14.  
  15.          Timer temps;
  16.  
  17.     @Override
  18.     public void init() {
  19.         temps  = new Timer(500, new ActionListener(){
  20.             public void actionPerformed(ActionEvent ae){
  21.               ActualitzaLlista al = new ActualitzaLlista();
  22.              try{
  23.               jLlistaUsuaris.setListData(al.listar());
  24.              }catch(Exception e){
  25.                  System.out.println("ERROR al llistar");
  26.              }
  27.             }
  28.     });
  29.         temps.start();
  30.         try {
  31.             java.awt.EventQueue.invokeAndWait(new Runnable() {
  32.                 public void run() {
  33.                     initComponents();
  34.                 jTextArea.setEditable(false);
  35.                 jTextArea.setText("Conectando con el servidor...");
  36.  
  37.                }
  38.             });
  39.         } catch (Exception ex) {
  40.             ex.printStackTrace();
  41.         }
  42.         getContentPane().setBackground(new Color(236, 153, 50));
  43.     }
  44.  
  45.     /** This method is called from within the init() method to
  46.      * initialize the form.
  47.      */
  48.     @SuppressWarnings("unchecked")
  49.     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  50.     private void initComponents() {
  51.  
  52.         jScrollPane1 = new javax.swing.JScrollPane();
  53.         jLlistaUsuaris = new javax.swing.JList();
  54.         jTextEnviar = new javax.swing.JTextField();
  55.         jScrollPane2 = new javax.swing.JScrollPane();
  56.         jTextArea = new javax.swing.JTextArea();
  57.         jBotoEnviar = new javax.swing.JButton();
  58.  
  59.         setBackground(new java.awt.Color(236, 153, 50));
  60.         setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
  61.  
  62.         jLlistaUsuaris.setModel(new javax.swing.AbstractListModel() {
  63.             String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
  64.             public int getSize() { return strings.length; }
  65.             public Object getElementAt(int i) { return strings[i]; }
  66.         });
  67.         jScrollPane1.setViewportView(jLlistaUsuaris);
  68.  
  69.         jTextEnviar.setFont(new java.awt.Font("DejaVu Sans", 0, 16));
  70.         jTextEnviar.addActionListener(new java.awt.event.ActionListener() {
  71.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  72.                 jTextEnviarActionPerformed(evt);
  73.             }
  74.         });
  75.  
  76.         jTextArea.setColumns(20);
  77.         jTextArea.setRows(5);
  78.         jScrollPane2.setViewportView(jTextArea);
  79.  
  80.         jBotoEnviar.setBackground(new java.awt.Color(250, 250, 119));
  81.         jBotoEnviar.setText("ENVIAR");
  82.         jBotoEnviar.addActionListener(new java.awt.event.ActionListener() {
  83.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  84.                 jBotoEnviarActionPerformed(evt);
  85.             }
  86.         });
  87.  
  88.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  89.         getContentPane().setLayout(layout);
  90.         layout.setHorizontalGroup(
  91.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  92.             .addGroup(layout.createSequentialGroup()
  93.                 .addContainerGap()
  94.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  95.                     .addComponent(jTextEnviar, javax.swing.GroupLayout.DEFAULT_SIZE, 504, Short.MAX_VALUE)
  96.                     .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 504, Short.MAX_VALUE))
  97.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  98.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  99.                     .addComponent(jBotoEnviar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  100.                     .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 97, Short.MAX_VALUE))
  101.                 .addContainerGap(36, Short.MAX_VALUE))
  102.         );
  103.         layout.setVerticalGroup(
  104.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  105.             .addGroup(layout.createSequentialGroup()
  106.                 .addContainerGap()
  107.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  108.                     .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 403, Short.MAX_VALUE)
  109.                     .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 403, Short.MAX_VALUE))
  110.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  111.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  112.                     .addComponent(jTextEnviar, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
  113.                     .addComponent(jBotoEnviar, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE))
  114.                 .addGap(13, 13, 13))
  115.         );
  116.     }// </editor-fold>//GEN-END:initComponents
  117.  
  118.     private void jTextEnviarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextEnviarActionPerformed
  119.         // TODO add your handling code here:
  120.     }//GEN-LAST:event_jTextEnviarActionPerformed
  121.  
  122.     private void jBotoEnviarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBotoEnviarActionPerformed
  123.         jTextArea.setText(jTextArea.getText()+"\n"+jTextEnviar.getText());
  124.         jTextEnviar.setText(null);
  125.     }//GEN-LAST:event_jBotoEnviarActionPerformed
  126.  
  127.  
  128.     // Variables declaration - do not modify//GEN-BEGIN:variables
  129.     private javax.swing.JButton jBotoEnviar;
  130.     private javax.swing.JList jLlistaUsuaris;
  131.     private javax.swing.JScrollPane jScrollPane1;
  132.     private javax.swing.JScrollPane jScrollPane2;
  133.     private javax.swing.JTextArea jTextArea;
  134.     private javax.swing.JTextField jTextEnviar;
  135.     // End of variables declaration//GEN-END:variables
  136.  
  137.  
  138.  
  139. }

Clase que lee de la base de datos

Código JAVA:
Ver original
  1. /**
  2.  *
  3.  * @author franki
  4.  */
  5. import java.sql.*;
  6.  
  7. public class ActualitzaLlista {
  8.  
  9.     private String[] lista = new String[100];
  10.  
  11.     public void llegirBD(){
  12.               for(int j=0;j<100;j++){
  13.                   lista[j] = "";
  14.               }
  15.  
  16.         try {
  17.             int i = 0;
  18.             //Busca el driver per al tipus de DBMS en questio
  19.             Class.forName("com.mysql.jdbc.Driver");
  20.             //Definint url de connexio amb la base de dades
  21.             //el nom de la BD és "mydb"
  22.             Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mydb?user=root&amp;password=");
  23.             // Crear anunciat
  24.             Statement st = con.createStatement();
  25.  
  26.             ResultSet tabla = st.executeQuery("SELECT nick_chat FROM usuaris_chat where actiu = true");
  27.             while(tabla.next()){
  28.                 System.out.println(tabla.getString(1));
  29.                 lista[i] = tabla.getString(1);
  30.                 i++;
  31.             }
  32.  
  33.  
  34.         }catch(ClassNotFoundException e){
  35.             e.printStackTrace();
  36.         }
  37.         catch(SQLException e){
  38.             e.printStackTrace();
  39.             System.out.println(e.getMessage() + e.getErrorCode());
  40.         }
  41.         catch(Exception e){
  42.             e.printStackTrace();
  43.         }
  44.   }
  45.      public String[] listar(){
  46.          llegirBD();
  47.          return  lista;
  48.      }
  49. }

Codigo HTML que carga el applet

Código HTML:
Ver original
  1. <applet
  2.  
  3. code="ChatApplet.class"
  4.  
  5. ARCHIVE="mysql-connector-java-5.1.15-bin.jar;ActualitzaLlista.class"
  6.  
  7. width="730"
  8.  
  9. height="470"
  10.  
  11. >
  12.  
  13. </applet>
  14. <title>Chat Java</title>
  15. <body bgcolor="#ec9932">
  16. </body>
  17. </html>

PD: Recuerdo que en el applet viewer funciona perfecto.

PD2: Desde la consola de errores de google chrome sale:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Salu2 y mil gracias por su tiempo
  #2 (permalink)  
Antiguo 18/05/2011, 14:35
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: applet y mysql

Agrega el driver jdbc
  #3 (permalink)  
Antiguo 19/05/2011, 02:53
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: applet y mysql

Hola, muchas gracias por tu respuesta

Pero tengo una pregunta el jdbc, no es el mysql connector (que ya lo incluyo) ???? Y si no es asi como se añade el JDBC ?


Un saludo, y gracias de nuevo

Etiquetas: applet, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:49.