Pregunta

Me hizo un JFrame en NetBeans (que actualmente contiene sólo un JLabel), que se conecta a la base de datos y se pone un campo y mostrarlo en el JLabel. cuando ejecuto el programa, el JLabel muestra el campo por menos de un segundo, entonces el texto en el JLabel desaparece !! ¿Puede alguien decirme por qué está sucediendo esto? También probé en un JTextField, también mismo problema.

código:

public class frame extends javax.swing.JFrame {

    public frame() {
        initComponents();
    }

public void doingAll() {

      StringBuffer message = new StringBuffer();
    try {
      Statement stmt;
      Class.forName("com.mysql.jdbc.Driver");
      String url ="jdbc:mysql://localhost:3306/Junk2";
      Connection con = DriverManager.getConnection( url,"root", "");
      System.out.println("URL: " + url);
      System.out.println("Connection: " + con);
      stmt = con.createStatement();

      stmt.executeQuery("select * from Junk2.example");
      ResultSet rs = stmt.executeQuery("select * from Junk2.example");
      int columns = rs.getMetaData().getColumnCount();
      while(rs.next()){
      for (int i=1;i<=columns;i++){
      message.append(rs.getString(i)+" ");
      }
      message.append("\n");
      }
      System.out.println(message);

      con.close();
      }catch( Exception e ) {
      e.printStackTrace();
      }//end catch
      jLabel1.setText(message.toString());
      jTextField1.setText(message.toString()); 


       java.awt.EventQueue.invokeLater(new Runnable(){public void run(){new frame().setVisible(true);}});

    }

    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration

}
¿Fue útil?

Solución

Supongo que en algún otro lugar en el código, que están limpiando el campo.

Buscar a través de su código para lugares donde

  • haces setText ( "");
  • retirar la etiqueta desde la pantalla
  • dibujar otro componente sobre la parte superior de la etiqueta
  • han puesto en marcha su propio método de sorteo.

Como alternativa, Código postal aquí. Su pregunta está lejos de vaga para dar una respuesta definitiva claro.

editar: después de su show código

Su método doingAll no es estática, lo que significa que tendrá que haber creado un marco objeto llamarlo. Luego, al final de ese método, que está creando un nuevo marco con el código

java.awt.EventQueue.invokeLater(new Runnable(){public void run(){new frame().setVisible(true);}});

Esto no tiene sentido. Hay más en todo esto, ya que esto no es todo el código, pero supongo que la línea de código anterior es el punto de partida para algunos (si no todos) de sus problemas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top