Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package automata.gui; import automata.clas.Estado; import automata.clas.Transicion; import java.util.List; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; /** * * @author Alejandro */ public class BuscaAutomata extends javax.swing.JFrame { /** * Creates new form BuscaAutomata */ public BuscaAutomata() { initComponents(); txtEstado.setEditable(false); txtTransicion.requestFocus(); } private void Carga_Inicial() { try { Transaction transaction = session.beginTransaction(); Query q = session.createQuery("from Estado e where e.inicial = true"); miEstado = (Estado) q.list().get(0); txtEstado.setText(miEstado.getStrEstado()); transaction.commit(); } catch (HibernateException he) { JOptionPane.showMessageDialog(null, "Error: " + he.getMessage()); } } public void getSession(Session session) { this.session = session; Carga_Inicial(); } /** * 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") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); txtEstado = new javax.swing.JTextField(); txtTransicion = new javax.swing.JTextField(); btnSalir = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); tbExito = new javax.swing.JTable(); btnBuscar = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N jLabel1.setText("Resolver automata"); jLabel2.setText("Estado Actual: "); jLabel3.setText("Transicion: "); btnSalir.setText("Salir"); btnSalir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnSalirActionPerformed(evt); } }); tbExito.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { }, new String[] { "Estado", "Transicion" }) { boolean[] canEdit = new boolean[] { false, false }; public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit[columnIndex]; } }); jScrollPane1.setViewportView(tbExito); btnBuscar.setText("Buscar"); btnBuscar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBuscarActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap(123, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addComponent(jLabel1).addGap(121, 121, 121)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addComponent(btnSalir).addContainerGap()))) .addGroup(layout.createSequentialGroup().addGap(21, 21, 21).addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2).addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(txtEstado, javax.swing.GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE) .addComponent(txtTransicion)) .addGap(18, 18, 18).addComponent(btnBuscar).addGap(0, 0, Short.MAX_VALUE))) .addContainerGap())); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jLabel1).addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2).addComponent(txtEstado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(txtTransicion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnBuscar)) .addGap(18, 18, 18) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 138, Short.MAX_VALUE) .addComponent(btnSalir).addContainerGap())); pack(); }// </editor-fold>//GEN-END:initComponents private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSalirActionPerformed try { session.close(); } catch (HibernateException he) { JOptionPane.showMessageDialog(null, "Error: " + he.getMessage()); } finally { System.exit(0); } }//GEN-LAST:event_btnSalirActionPerformed private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBuscarActionPerformed try { /*Transaction transaction = session.beginTransaction(); Query q = session.createQuery("from Transicion t where t.idEstado = " + miEstado.getIdEstado()); List transiciones = (List<Transicion>)q.list(); if(transiciones.equals(miEstado.getIdEstado())) { Query query = session.createQuery("Estado e where e.idEstado = " + transicion.getIdEstadoSiguiente()); miEstado = (Estado) query.list().get(0); Object[] row = {miEstado.getStrEstado(), transicion.getStrTransicion()}; DefaultTableModel model = (DefaultTableModel) tbExito.getModel(); model.addRow(row); txtEstado.setText(miEstado.getStrEstado()); } */ } catch (HibernateException he) { JOptionPane.showMessageDialog(null, "Error hibernate: " + he.getMessage()); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error general: " + e.getMessage()); } }//GEN-LAST:event_btnBuscarActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* 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(BuscaAutomata.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(BuscaAutomata.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(BuscaAutomata.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(BuscaAutomata.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new BuscaAutomata().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnBuscar; private javax.swing.JButton btnSalir; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable tbExito; private javax.swing.JTextField txtEstado; private javax.swing.JTextField txtTransicion; // End of variables declaration//GEN-END:variables private Session session; private Estado miEstado; }