AYUDA Agregar Valor JcomboBox en el Jtable Java
Le doy entrada a un elemento y cuando quiero darle salida(Eliminar el elemento seleccionado) no me funciona me gustaría saber que estoy haciendo mal, este es el código:
--------------------------------------------------------------- Clase GuarderiaJFrame --------------------------------------------------------------
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
public class GuarderiaJFrame extends javax.swing.JFrame {
private Niño niño;
private List<Niño> niños;
private Edad selectedEdad;
private List<Edad> edades;
private Sexo selectedSexo;
private List<Sexo> sexo;
private Tipo selectedTipo;
private List<Tipo> tipos;
private Niño selectedNiño;
private Cuidadora selectedCuidadora;
private List<Cuidadora> cuidadoras;
/**
* Creates new form GuarderiaJFrame
*/
public GuarderiaJFrame() {
niño = new Niño();
niños = new ArrayList<Niño>();
edades = new ArrayList<Edad>();
edades.add(new Edad ("5 a 11 Meses"));
edades.add(new Edad ("1 a 3 Años"));
edades.add(new Edad ("4 a 6 Años"));
sexo = new ArrayList<Sexo>();
sexo.add(new Sexo ("Masculino"));
sexo.add(new Sexo ("Femenino"));
tipos = new ArrayList<Tipo>();
tipos.add(new Tipo ("Normal"));
tipos.add(new Tipo ("Superdotado"));
tipos.add(new Tipo ("Sindrome de Down"));
tipos.add(new Tipo ("Sordera-Ceguera"));
tipos.add(new Tipo ("Sordera"));
tipos.add(new Tipo ("Ceguera"));
tipos.add(new Tipo ("Autismo"));
tipos.add(new Tipo ("Transtorno Motores"));
tipos.add(new Tipo ("Transtorno Emocional"));
tipos.add(new Tipo ("Discapacidad Intelectial"));
tipos.add(new Tipo ("Discapacidad Múltiple"));
cuidadoras = new ArrayList<Cuidadora>();
cuidadoras.add(new Cuidadora ("Perla Villaseca"));
cuidadoras.add(new Cuidadora ("Stepfani Beltre"));
cuidadoras.add(new Cuidadora ("Angely Almonte"));
cuidadoras.add(new Cuidadora ("Arelis Pereyra"));
cuidadoras.add(new Cuidadora ("Samira Almaraz"));
initComponents();
}
public Niño getNiño() {
return niño;
}
public void setNiño(Niño niño) {
this.niño = niño;
}
public List<Niño> getNiños() {
return niños;
}
public void setNiños(List<Niño> niños) {
this.niños = niños;
}
public Edad getSelectedEdad() {
return selectedEdad;
}
public void setSelectedEdad(Edad selectedEdad) {
this.selectedEdad = selectedEdad;
}
public Sexo getSelectedSexo() {
return selectedSexo;
}
public void setSelectedSexo(Sexo selectedSexo) {
this.selectedSexo = selectedSexo;
}
public List<Sexo> getSexo() {
return sexo;
}
public void setSexo(List<Sexo> sexo) {
this.sexo = sexo;
}
public Tipo getSelectedTipo() {
return selectedTipo;
}
public void setSelectedTipo(Tipo selectedTipo) {
this.selectedTipo = selectedTipo;
}
public List<Tipo> getTipos() {
return tipos;
}
public void setTipos(List<Tipo> tipos) {
this.tipos = tipos;
}
public Niño getSelectedNiño() {
return selectedNiño;
}
public void setSelectedNiño(Niño selectedNiño) {
this.selectedNiño = selectedNiño;
}
public Cuidadora getSelectedCuidadora() {
return selectedCuidadora;
}
public void setSelectedCuidadora(Cuidadora selectedCuidadora) {
this.selectedCuidadora = selectedCuidadora;
}
public List<Cuidadora> getCuidadoras() {
return cuidadoras;
}
public void setCuidadoras(List<Cuidadora> cuidadoras) {
this.cuidadoras = cuidadoras;
}
public List<Edad> getEdades() {
return edades;
}
public void setEdades(List<Edad> edades) {
this.edades = edades;
}
@SuppressWarnings("unchecked")
private void initComponents() {
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
jPanel1 = new javax.swing.JPanel();
Tutor_Label = new javax.swing.JLabel();
Tutor_Texto = new javax.swing.JTextField();
Nombre_Label = new javax.swing.JLabel();
Nombre_Texto = new javax.swing.JTextField();
Edad_Label = new javax.swing.JLabel();
Edad_Combo = new javax.swing.JComboBox();
Sexo_Label = new javax.swing.JLabel();
Sexo_Combo = new javax.swing.JComboBox();
Cuidadora_Label = new javax.swing.JLabel();
Cuidadora_Combo = new javax.swing.JComboBox();
jLabel1 = new javax.swing.JLabel();
Tipo_Combo = new javax.swing.JComboBox();
jPanel3 = new javax.swing.JPanel();
Boton_Entrada = new javax.swing.JButton();
Boton_Salida = new javax.swing.JButton();
Boton_Limpiar = new javax.swing.JButton();
Boton_Salir = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new java.awt.Dimension(800, 575));
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowOpened(java.awt.event.WindowEvent evt) {
formWindowOpened(evt);
}
});
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Ingreso de Niños", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION));
jPanel1.setPreferredSize(new java.awt.Dimension(770, 275));
Tutor_Label.setText("Padre o Tutor:");
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${niño.tutor}"), Tutor_Texto, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
Nombre_Label.setText("Nombre Completo:");
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${niño.niño}"), Nombre_Texto, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
Edad_Label.setText("Edad:");
Edad_Combo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
org.jdesktop.beansbinding.ELProperty eLProperty = org.jdesktop.beansbinding.ELProperty.create("${edades}");
org.jdesktop.swingbinding.JComboBoxBinding jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, Edad_Combo);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${selectedEdad}"), Edad_Combo, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
Sexo_Label.setText("Sexo:");
Sexo_Combo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${sexo}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, Sexo_Combo);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${selectedSexo}"), Sexo_Combo, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
Cuidadora_Label.setText("Cuidadora:");
Cuidadora_Combo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${cuidadoras}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, Cuidadora_Combo);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${selectedCuidadora}"), Cuidadora_Combo, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
jLabel1.setText("Tipo:");
Tipo_Combo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${tipos}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, Tipo_Combo);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${selectedTipo}"), Tipo_Combo, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Acciones", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION));
Boton_Entrada.setIcon(new javax.swing.ImageIcon("/home/alfonso/Proyectos/NetBeansProjects/Programa/src/Imagenes/entradabebe (copia).png")); // NOI18N
Boton_Entrada.setText("Entrada");
Boton_Entrada.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Boton_EntradaActionPerformed(evt);
}
});
Boton_Salida.setIcon(new javax.swing.ImageIcon("/home/alfonso/Proyectos/NetBeansProjects/Programa/src/Imagenes/salidabebe (copia).png")); // NOI18N
Boton_Salida.setText("Salida");
Boton_Salida.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Boton_SalidaActionPerformed(evt);
}
});
Boton_Limpiar.setIcon(new javax.swing.ImageIcon("/home/alfonso/Proyectos/NetBeansProjects/Programa/src/Imagenes/limpiar (copia).png")); // NOI18N
Boton_Limpiar.setText("Limpiar");
Boton_Limpiar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Boton_LimpiarActionPerformed(evt);
}
});
Boton_Salir.setIcon(new javax.swing.ImageIcon("/home/alfonso/Proyectos/NetBeansProjects/Programa/src/Imagenes/exit (copia).png")); // NOI18N
Boton_Salir.setText("Salir");
Boton_Salir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Boton_SalirActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(Boton_Entrada)
.addComponent(Boton_Limpiar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(Boton_Salir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(Boton_Salida, javax.swing.GroupLayout.DEFAULT_SIZE, 116, Short.MAX_VALUE))
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Boton_Entrada)
.addComponent(Boton_Salida))
.addGap(18, 18, 18)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(Boton_Limpiar)
.addComponent(Boton_Salir))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(44, 44, 44)
.addComponent(Tutor_Label))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(Nombre_Label))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(Edad_Label, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(Cuidadora_Label, javax.swing.GroupLayout.Alignment.TRAILING))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(Tutor_Texto)
.addComponent(Nombre_Texto)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(Tipo_Combo, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(Cuidadora_Combo, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(Edad_Combo, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 46, Short.MAX_VALUE)
.addComponent(Sexo_Label)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(Sexo_Combo, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(18, 18, 18)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jPanel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Tutor_Label)
.addComponent(Tutor_Texto, 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(Nombre_Label)
.addComponent(Nombre_Texto, 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(Edad_Combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Sexo_Label)
.addComponent(Sexo_Combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Edad_Label))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(Tipo_Combo, 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(Cuidadora_Label)
.addComponent(Cuidadora_Combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(31, Short.MAX_VALUE))
);
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_START);
jPanel2.setLayout(new java.awt.BorderLayout());
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${niños}");
org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, jTable1);
org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${tutor}"));
columnBinding.setColumnName("Tutor");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${niño}"));
columnBinding.setColumnName("Niño");
columnBinding.setColumnClass(String.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${edad}"));
columnBinding.setColumnName("Edad");
columnBinding.setColumnClass(guarderia.Edad.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${tipo}"));
columnBinding.setColumnName("Tipo");
columnBinding.setColumnClass(guarderia.Tipo.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${sexo}"));
columnBinding.setColumnName("Sexo");
columnBinding.setColumnClass(guarderia.Sexo.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${cuidadora}"));
columnBinding.setColumnName("Cuidadora");
columnBinding.setColumnClass(guarderia.Cuidadora.class);
bindingGroup.addBinding(jTableBinding);
jTableBinding.bind();binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${selectedNiño}"), jTable1, org.jdesktop.beansbinding.BeanProperty.create("selectedElement"));
bindingGroup.addBinding(binding);
jScrollPane1.setViewportView(jTable1);
jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);
bindingGroup.bind();
pack();
}
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
centrarVentana();
}
private void Boton_EntradaActionPerformed(java.awt.event.ActionEvent evt) {
this.niño.setEdad(selectedEdad);
this.niño.setTipo(selectedTipo);
this.niño.setSexo(selectedSexo);
this.niño.setCuidadora(selectedCuidadora);
this.niños.add(getNiño());
this.bindingGroup.unbind();
this.niño = new Niño();
this.bindingGroup.bind();
}
private void Boton_LimpiarActionPerformed(java.awt.event.ActionEvent evt) {
this.limpiar();
}
private void Boton_SalirActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void Boton_SalidaActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel md = (DefaultTableModel)jTable1.getModel();
int resultado = JOptionPane.showConfirmDialog(this, "Desea Eliminar el elemento "+ getSelectedNiño().getNiño(),"Eliminar",JOptionPane.YES_NO_OPTION);
md.removeRow(jTable1.getSelectedRow());
}
public static void main(String args[]) {
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(GuarderiaJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(GuarderiaJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(GuarderiaJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(GuarderiaJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GuarderiaJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton Boton_Entrada;
private javax.swing.JButton Boton_Limpiar;
private javax.swing.JButton Boton_Salida;
private javax.swing.JButton Boton_Salir;
private javax.swing.JComboBox Cuidadora_Combo;
private javax.swing.JLabel Cuidadora_Label;
private javax.swing.JComboBox Edad_Combo;
private javax.swing.JLabel Edad_Label;
private javax.swing.JLabel Nombre_Label;
private javax.swing.JTextField Nombre_Texto;
private javax.swing.JComboBox Sexo_Combo;
private javax.swing.JLabel Sexo_Label;
private javax.swing.JComboBox Tipo_Combo;
private javax.swing.JLabel Tutor_Label;
private javax.swing.JTextField Tutor_Texto;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private org.jdesktop.beansbinding.BindingGroup bindingGroup;
// End of variables declaration
private void centrarVentana() {
// Se obtienen las dimensiones en pixels de la pantalla.
Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
// Se obtienen las dimensiones en pixels de la ventana.
Dimension ventana = getSize();
// Una cuenta para situar la ventana en el centro de la pantalla.
setLocation((pantalla.width - ventana.width) / 2,
(pantalla.height - ventana.height) / 2);
}
private void limpiar() {
this.Tutor_Texto.setText("");
this.Nombre_Texto.setText("");
this.Edad_Combo.setSelectedItem(null);
this.Tipo_Combo.setSelectedItem(null);
this.Cuidadora_Combo.setSelectedItem(null);
}
}
--------------------------------------------------------------- Clase Edad --------------------------------------------------------------
public class Edad {
private String rangoedad;
public String getRangoedad() {
return rangoedad;
}
public void setRangoedad(String rangoedad) {
this.rangoedad = rangoedad;
}
public Edad(String rangoedad) {
this.rangoedad = rangoedad;
}
@Override
public String toString() {
return rangoedad;
}
}
--------------------------------------------------------------- Clase Cuidadora --------------------------------------------------------------
--------------------------------------------------------------- Clase Tipo --------------------------------------------------------------
public class Tipo {
private String clasificacion;
public String getClasificacion() {
return clasificacion;
}
public void setClasificacion(String clasificacion) {
this.clasificacion = clasificacion;
}
public Tipo(String clasificacion) {
this.clasificacion = clasificacion;
}
public Tipo() {
}
@Override
public String toString() {
return clasificacion;
}
}
--------------------------------------------------------------- Clase Sexo --------------------------------------------------------------
--------------------------------------------------------------- Clase Niño --------------------------------------------------------------
public class Niño {
private String tutor;
private String niño;
private Sexo sexo;
private Edad edad;
private Tipo tipo;
private Cuidadora cuidadora;
public String getTutor() {
return tutor;
}
public void setTutor(String tutor) {
this.tutor = tutor;
}
public String getNiño() {
return niño;
}
public void setNiño(String niño) {
this.niño = niño;
}
public Sexo getSexo() {
return sexo;
}
public void setSexo(Sexo sexo) {
this.sexo = sexo;
}
public Edad getEdad() {
return edad;
}
public void setEdad(Edad edad) {
this.edad = edad;
}
public Tipo getTipo() {
return tipo;
}
public void setTipo(Tipo tipo) {
this.tipo = tipo;
}
public Cuidadora getCuidadora() {
return cuidadora;
}
public void setCuidadora(Cuidadora cuidadora) {
this.cuidadora = cuidadora;
}
}
Adjunte la imagen de la ventana en cuestion.
Adjunto | Tamaño |
---|---|
Ventana.png | 26.25 KB |
Ventana2.png | 29.79 KB |
Binding_Tutor.png | 23.84 KB |
Binding_Niño.png | 25.14 KB |
Binding_Edad.png | 30.6 KB |
Binding_Sexo.png | 25.5 KB |
Binding_Tipo.png | 24.96 KB |
Binding_Cuidadora.png | 25.17 KB |
Binding_jTable.png | 26.15 KB |
- Inicie sesión o regístrese para enviar comentarios
Cual es el problema?
Hola,
Tal vez te interese poner tus códigos entre las etiquetas < code > y < /code > (sin espacios) para hacelos más legibles.
Bueno, nos gustaría que nos explicaras un poco mejor exactamente qué problema tienes... por ejemplo, ¿dónde estás guardando y recuperando tus datos? ¿a qué te refieres exactamente con "darle entrada" y "darle salida"?
También, para poder reconstruir el problema, hace falta una parte del código del JFrame: el metodo initComponents() y las declaraciones de las variables de instancia del frame (los textbox, combobox y demás), si los pudieras proporcionar y responder las preguntas, tal vez podamos ayudarte mejor...
si deseas te puedo enviar el
si deseas te puedo enviar el proyecto y lo chequeas mejor, el tema que puse no es el correcto es eliminar el elemento seleccionado en el jtable con el boton Salida, de agregar el boton de Entrada funciona correctamente
no es necesario
No es necesario, solo explica mejor, con detalle si es posible, sobre qué es lo que quieres hacer y dónde estás teniendo problema, además de poner tus códigos entre los tags mencionados
Aca el inconveniente
esta parte del codigo no me elimina el elemento del Jtable
private void Boton_SalidaActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel md = (DefaultTableModel)jTable1.getModel();
int resultado = JOptionPane.showConfirmDialog(this, "Desea Eliminar el elemento "+ getSelectedNiño().getNiño(),"Eliminar",JOptionPane.YES_NO_OPTION);
md.removeRow(jTable1.getSelectedRow());
}
Estás usando binding?
¿Estás usando binding de elementos hacia tu JTable?
si estoy usando binding
si estoy usando binding, adjunte las imagenes de los binding
Ok
¿Te sale alguna excepción al dar clic en el botón de eliminar? Me acuerdo de ti todavía, tenías un problema relacionado con el binding entre las tablas y los combobox, y aún tengo el código que subiste aquella vez, lo estoy usando para hacer pruebas y veo que arroja excepción porque intenta hacer casting de un TableModel a un DefaultTableModel, siendo que el binding genera un TableModel distinto... en un momento más intentaré resolver el problema de otra forma
Excepcion
Tu sabes es que estoy aprendiendo desde los mas basico hasta poder llegar a lo mas avanzado
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: org.jdesktop.swingbinding.JTableBinding$BindingTableModel cannot be cast to javax.swing.table.DefaultTableModel
at guarderia.GuarderiaJFrame.Boton_SalidaActionPerformed(GuarderiaJFrame.java:434)
at guarderia.GuarderiaJFrame.access$200(GuarderiaJFrame.java:16)
at guarderia.GuarderiaJFrame$3.actionPerformed(GuarderiaJFrame.java:254)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
initComponents()
Agregue la parte del initComponents() y la parte Variables declaration - do not modify
que no lo habia puesto arriba
Creo que esto funcionaría
No te preocupes, yo también estoy aprendiendo, por ejemplo, estoy aprendiendo esto de los bindings con swing que no conocía.
Prueba poniendo algo similar a esto en tu método
Boton_SalidaActionPerformed
:niños.remove(n);
bindingGroup.unbind();
bindingGroup.bind();
Esto lo que hace es obtener el niño seleccionado en la tabla (siempre y cuando empate con el que tienes en la misma posición de tu lista), lo remueve de la lista niños (que está enlazada a tu tabla) y haces refresh del binding... he buscado maneras más limpias de hacer el refresh pero ninguna me funcionó, solo ésta.
Espero te sirva
Gracias me funciono de la
Gracias me funciono de la manera que la enviaste, le agregue un confirmDialog. Una pregunta como lanzaria una exception de cuando le doy al boton eliminar sin haber seleccionado un elemento me mande un mensaje que debo seleccionar un elemento para poder eliminar
int resultado = JOptionPane.showConfirmDialog(this, "Desea Eliminar el elemento "+ getSelectedNiño().getNiño(),"Eliminar",JOptionPane.YES_NO_OPTION);
niños.remove(n);
bindingGroup.unbind();
bindingGroup.bind();
Lo modifique de esta manera
Lo puse de esta manera y funciona perfecto!!!!
Niño n = niños.get(jTable1.getSelectedRow());
int resultado = JOptionPane.showConfirmDialog(this, "Desea Eliminar el elemento "+ getSelectedNiño().getNiño(),"Eliminar",JOptionPane.YES_NO_OPTION);
if(resultado == JOptionPane.YES_OPTION) {
niños.remove(n);
if(resultado == JOptionPane.NO_OPTION) {
System.exit(0);
}
}
bindingGroup.unbind();
bindingGroup.bind();
Cachar la excepcion
Que bien que funcionó!
Para lo de la excepción, podrías cacharla en un bloque try / catch, algo parecido a esto:
Niño n = niños.get(jTable1.getSelectedRow());
// el resto de codigo aquí
// ...
} catch(Exception ex) {
// si se cachó una excepción, mostrar el mensaje con algo así
JOptionPane.showMessageDialog(this, "Excepción " + e + ", debe seleccionar un elemento a eliminar");
}
Aunque la excepción que arroja el getSelectedRow es de tipo RuntimeException, es decir, que no es necesario cacharlas en bloques try / catch porque normalmente son "errores de programación" y deberían de tratarse de otra forma, aunque por el momento no se me ocurre ninguna otra. Tal vez alguien con más experiencia pueda aportar una buena solución
codigo
esa parte del codigo del boton la pongo ???
Si quieres
Si quieres, no es necesario, solo lo mencioné por lo que preguntaste de cómo manejar la excepción y que avise que se debe seleccionar un elemento para poderlo eliminar
trate
Trate de esta forma pero no funciona
int resultado = JOptionPane.showConfirmDialog(this, "Desea Eliminar el elemento "+ getSelectedNiño().getNiño(),"Eliminar",JOptionPane.YES_NO_OPTION);
if(resultado == JOptionPane.YES_OPTION) {
niños.remove(n);
if(resultado == JOptionPane.NO_OPTION) {
System.exit(0);
if (niños == null) {
JOptionPane.showMessageDialog(this, "Debe seleccionar el niño que tendrá Salida");
}
}
}
bindingGroup.unbind();
bindingGroup.bind();
}
La lista no vale null
Con el último if, estás preguntando si tu lista vale null (cosa que no es así). Supongo que lo que quieres verificar, es que el niño seleccionado no valga null, lo cual tampoco va a ser posible porque antes de que te asigne un null, el programa arrojará la excepción de ArrayIndexOutOfBounds o algo por el estilo
Gracias por Todo me funciono de la siguiente manera
Si tienes Whatsapp o correo personal, podriamos comunicarnos e ir consultandonos, para ir adquiriendo mas conocimientos y compartir las dudas.
try {
Niño n = niños.get(jTable1.getSelectedRow());
int resultado = JOptionPane.showConfirmDialog(this, "Seguro que "+ getSelectedNiño().getNiño()+" tendrá salida de la Guarderia","Salida",JOptionPane.YES_NO_OPTION);
if(resultado == JOptionPane.YES_OPTION) {
niños.remove(n);
if(resultado == JOptionPane.NO_OPTION) {
System.exit(0);
}
}
bindingGroup.unbind();
bindingGroup.bind();
} catch(Exception e) {
JOptionPane.showMessageDialog(this, "Debe seleccionar el niño que tendrá Salida");
}
}