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 GUI; import Data.listaTipo; import Extras.JSON; import com.mycompany.crud_json_maven.Config; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.swing.JOptionPane; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONArray; import org.json.JSONObject; /** * * @author Diegou */ public class FormUsuarios extends javax.swing.JFrame { private String nombre; private String email; private String edad; private String tipo; private String ID; Map<String, Integer> ValoresCombobox = new HashMap<String, Integer>(); public String getID() { return ID; } public void setID(String ID) { this.ID = ID; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; txt_nombre.setText(nombre); } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; txt_email.setText(email); } public String getEdad() { return edad; } public void setEdad(String edad) { this.edad = edad; txt_edad.setText(edad); } public String getTipo() { return tipo; } public void setTipo(String tipo) { this.tipo = tipo; } /** * Creates new form FormUsuarios */ public FormUsuarios() { initComponents(); HttpResponse response; response = JSON.request(Config.URL + "usuarios/listartipos.json"); JSONObject jObject = JSON.JSON(response); try { System.out.println(jObject.get("code")); JSONArray jsonArr = jObject.getJSONArray("data"); for (int i = 0; i < jsonArr.length(); i++) { JSONObject data = jsonArr.getJSONObject(i); cb_tipo.addItem(new listaTipo(data.get("idTipo").toString(), data.get("descripcion").toString())); ValoresCombobox.put(data.get("descripcion").toString(), Integer.parseInt(data.get("idTipo").toString())); } } catch (Exception e) { e.printStackTrace(); } initializeComponent(); } private void initializeComponent() { this.addWindowListener(new WindowAdapter() { public void windowOpened(WindowEvent e) { if (getID() != null) { int valor = ValoresCombobox.get(getTipo()); cb_tipo.setSelectedIndex(valor - 1); } } }); } /** * 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(); txt_nombre = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); btn_guardar = new javax.swing.JButton(); jLabel5 = new javax.swing.JLabel(); txt_email = new javax.swing.JTextField(); txt_edad = new javax.swing.JTextField(); cb_tipo = new javax.swing.JComboBox(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); jLabel1.setText("Nombre"); jLabel2.setText("Email"); jLabel3.setText("Edad"); btn_guardar.setText("Guardar"); btn_guardar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn_guardarActionPerformed(evt); } }); jLabel5.setText("Tipo"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 71, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(txt_edad, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(txt_email, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(txt_nombre, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(cb_tipo, 0, 179, Short.MAX_VALUE))) .addComponent(btn_guardar)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap(36, Short.MAX_VALUE).addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1) .addComponent(txt_nombre, 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(jLabel2).addComponent(txt_email, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(21, 21, 21) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3).addComponent(txt_edad, 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(jLabel5).addComponent(cb_tipo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(22, 22, 22).addComponent(btn_guardar).addGap(7, 7, 7))); pack(); }// </editor-fold>//GEN-END:initComponents private void btn_guardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_guardarActionPerformed List<NameValuePair> parametros = new ArrayList<NameValuePair>(); parametros.add(new BasicNameValuePair("nombre", txt_nombre.getText())); parametros.add(new BasicNameValuePair("email", txt_email.getText())); parametros.add(new BasicNameValuePair("edad", txt_edad.getText())); Object item = cb_tipo.getSelectedItem(); String value = ((listaTipo) item).getKey(); parametros.add(new BasicNameValuePair("tipo", value)); String url = ""; String mensaje_correcto = ""; String mensaje_error = ""; if (getID() != null) { parametros.add(new BasicNameValuePair("idUsuario", getID())); mensaje_correcto = "Usuario Actualizado"; mensaje_error = "Error actualizar Usuario"; url = Config.URL + "usuarios/editar.json"; } else { mensaje_correcto = "Usuario Agregado"; mensaje_error = "Error agregar Usuario"; url = Config.URL + "usuarios/agregar.json"; } HttpResponse response = JSON.request(url, parametros); JSONObject jObject = JSON.JSON(response); int code = Integer.parseInt(jObject.get("code").toString()); if (code == 201) { JOptionPane.showMessageDialog(null, mensaje_correcto); this.dispose(); } else { JOptionPane.showMessageDialog(null, mensaje_error); } }//GEN-LAST:event_btn_guardarActionPerformed /** * @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(FormUsuarios.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(FormUsuarios.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(FormUsuarios.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(FormUsuarios.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 FormUsuarios().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btn_guardar; private javax.swing.JComboBox cb_tipo; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel5; private javax.swing.JTextField txt_edad; private javax.swing.JTextField txt_email; private javax.swing.JTextField txt_nombre; // End of variables declaration//GEN-END:variables }