Как показывать в jframe результаты решения sql?

Я хотел бы знать, что я врежу в коде, он оказывается, что я пробую достичь данных о решении в JFrame. им оставило код то, что я приношу

package Formulario;


import Formulario.Menu;
import Clases.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Login extends javax.swing.JFrame {

   public static Controlador controller;
   public static ResultSet rs;

    public Login() {
        initComponents();
    }

    /**
     * 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.
     */
    @SuppressWarnings("unchecked")
    //                           
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        btIngresar = new javax.swing.JButton();
        tfUsuario = new javax.swing.JTextField();
        lbMsj = new javax.swing.JLabel();
        psPSW = new javax.swing.JPasswordField();
        jLabel3 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText(" Usuario :");

        jLabel2.setText("Clave :");

        btIngresar.setText("INGRESAR");
        btIngresar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btIngresarActionPerformed(evt);
            }
        });

        tfUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tfUsuarioActionPerformed(evt);
            }
        });

        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        jLabel3.setText("Sistema de Inventario de Activos Fijos");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(91, 91, 91)
                .addComponent(lbMsj, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(btIngresar)
                .addGap(45, 45, 45))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(66, 66, 66)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(tfUsuario)
                            .addComponent(psPSW, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(jLabel3))
                .addContainerGap(68, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(40, 40, 40)
                .addComponent(jLabel3)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(138, 138, 138)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel1)
                            .addComponent(tfUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(psPSW, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(lbMsj, javax.swing.GroupLayout.DEFAULT_SIZE, 131, Short.MAX_VALUE)
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(btIngresar)
                        .addGap(30, 30, 30))))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(58, 58, 58)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(142, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }//                         

    private void tfUsuarioActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
    }                                         

    private void btIngresarActionPerformed(java.awt.event.ActionEvent evt) {                                           

        String Passw = new String(psPSW.getPassword());
        try{
            controller =new Controlador();
            controller.crearConexion();
           }catch (SQLException ex){

               Logger.getLogger(Login.class.getName()).
               log(Level.SEVERE, null, ex);
               }

        String sql="Select * from Usuario WHERE Us_Nom='"+tfUsuario.getText()+"' and Us_Pwd='"+Passw+"'";
            try {
                 rs=controller.mandarQUERY(sql);
            while (rs.next()){

                    Menu vent= new Menu();
                    vent.setVisible(true);
                    this.setVisible(false);
                    }
                } catch (SQLException ex) {
            Logger.getLogger(Login.class.getName()).
            log(Level.SEVERE, null, ex);
            }
    }                                          

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Login().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton btIngresar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JLabel lbMsj;
    private javax.swing.JPasswordField psPSW;
    private javax.swing.JTextField tfUsuario;
    // End of variables declaration                   
}

0
задан 25.06.2016, 04:49
3 ответа
 String nombreUsuario=null;
 Menu mnVista;
 while (rs.next()){
  nombreUsuario=rs.getString(0); //ejemplo
 }
mnVista=new mnVista(nombreUsuario);//opcion 1 pase por constructor
mnVista.jLabel1.setText(nombreUsuario);// componente static

Это какие-то подсказки приспосабливаясь к тому, что у тебя есть кода, из-за которого возможно, что он не оптимальнее

1
ответ дан 24.11.2019, 14:04

Чтобы показывать результат решения SQL лучшее обычно состоять в том, чтобы показывать это посредством JTable .

ты определяешься JTable с nГєmero колонн равно в nГєmero полей, которые ты хочешь, чтобы они появились результата select и без линий.

Внутри Локона, который у тебя есть:

while(rs.next){
...
}

ты увеличиваешь tamaГ±o JTable пока были записи и назначаешь ему в каждую колонну стоимость, что ты хочешь

1
ответ дан 24.11.2019, 14:04

Я дам тебе две хорошие практики, когда ты будешь работать с Swing/JavaFX.

  1. Использует главный файл VO для mapear твои подмостки в объекты.
  2. Воспользуйся возможностью каждый раз, когда ты смог характерные классы контроля в Swing.
  3. Никогда не перемешивай логику дела с совещаниями.

Использовать главный файл VO

Очень рекомендуемый использовать главный файл VO, когда ты будешь работать с базами данных. В mapear таблица в объект, ты герметизируешь в корпусе всю эту информацию в объектах Java, таким образом что ты можешь соглашаться на информацию о ясном, чистом и кратком способе.

while(rs.next()) {
    Persona persona = new Persona();
    persona.setNombre(rs.getString("nombre"));
    persona.setApellido(rs.getString("apellido"));
    persona.setDireccion(rs.getString("direccion"));
    persona.setTelefono(rs.getString("telefono"));
}

Использовать характерные классы Swing/JavaFX

В JTable нет способа использовать Generics, потому что не JTable не является характерным, однако ты можешь делать это делая один DefaultTableModel. Однако, в каком-то контроле как JList или JComboBox возможно присоединять определенный тип информации, которая может быть объектом в контроль.

Чтобы показывать одну List объектов в твоем JTable, более легкий используя главный файл VO.

DefaultTableModel model = (DefaultTableModel) tblPersonas.getModel();
for(Persona persona : personas) {
  model.addRow(new Object[] {
    persona.getNombre(),
    persona.getApellido(),
    persona.getDireccion(),
    persona.getTelefono()
  });
}

Никогда не перемешивай код дела с совещаниями

Это, может быть, точка самая важная из трех. Перемешивать код дела с совещаниями значит изрекать твое приложение к неизбежному прекращению. Приложение, которое не устанавливает слои, просто не может взбираться (расти в будущем, добавляясь функциональность). Кроме того, прибудет точка, в которой это пытка поддерживать это, потому что совсем он крутит роман. Подлинные заросли кустарника.

Соединения интереса:

0
ответ дан 24.11.2019, 14:04

Теги

Похожие вопросы