Я хотел бы знать, что я врежу в коде, он оказывается, что я пробую достичь данных о решении 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
}
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
Это какие-то подсказки приспосабливаясь к тому, что у тебя есть кода, из-за которого возможно, что он не оптимальнее
Чтобы показывать результат решения SQL лучшее обычно состоять в том, чтобы показывать это посредством JTable .
ты определяешься JTable с nГєmero колонн равно в nГєmero полей, которые ты хочешь, чтобы они появились результата select и без линий.
Внутри Локона, который у тебя есть:
while(rs.next){
...
}
ты увеличиваешь tamaГ±o JTable пока были записи и назначаешь ему в каждую колонну стоимость, что ты хочешь
Я дам тебе две хорошие практики, когда ты будешь работать с Swing/JavaFX.
Очень рекомендуемый использовать главный файл 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"));
}
В 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()
});
}
Это, может быть, точка самая важная из трех. Перемешивать код дела с совещаниями значит изрекать твое приложение к неизбежному прекращению. Приложение, которое не устанавливает слои, просто не может взбираться (расти в будущем, добавляясь функциональность). Кроме того, прибудет точка, в которой это пытка поддерживать это, потому что совсем он крутит роман. Подлинные заросли кустарника.
Соединения интереса: