Las subastas tienen ventas almacenas dentro de las mismas, pongo el código
Código Java:
Ver original
package app.vistas.modelos; import app.contr.clases.Estado; import java.awt.Color; import java.awt.Component; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; { @Override if (value instanceof Estado) { Estado estado = (Estado) value; setText(estado.getNombre()); } if (row % 2 == 0) { } else { } if (isSelected) { } return this; } }
Código Java:
Ver original
package app.vistas.modelos; import app.contr.clases.*; import app.vistas.facade.FacadeContr; import app.vistas.util.Mensajes; import java.awt.*; import java.awt.event.*; import java.sql.SQLException; import javax.swing.*; import javax.swing.table.TableCellEditor; import up.max.proyectpages.structs.PagesList; { private Estado estado; PagesList<Estado>datos; Subasta objs; Venta objv; public EstadoCellEditor(Subasta xobjs) { try { this.objs = xobjs; datos = FacadeContr.getInstance().manEstados().find(null); Mensajes.MostrarAdvertencia(ex.getMessage()); } } @Override return this.estado; } @Override if (value instanceof Estado) { this.estado = (Estado) value; } datos.toList().forEach((xestado) -> { combo.addItem(xestado); }); combo.setSelectedItem(estado); combo.addActionListener(this); if (row % 2 == 0) { } else { } if (isSelected) { } return combo; } @Override try { JComboBox<Estado> combo = (JComboBox<Estado>) event.getSource(); this.estado = (Estado) combo.getSelectedItem(); objv.setObje(estado); objs.addDep(objv); Mensajes.MostrarAdvertencia(ex.getMessage()); } } public void setVenta(Venta xobjv){ this.objv = xobjv; } }
Código Java:
Ver original
package app.vistas.modelos; import app.contr.clases.*; import app.vistas.util.*; import java.sql.SQLException; import up.max.proyectpages.structs.PagesList; public class ModeloVentaX extends ModeloMaster { private final Subasta objs; private PagesList<Venta>datos; public ModeloVentaX(Subasta xobjs) { this.objs = xobjs; datos = new PagesList(); } @Override try { datos = objs.deps(); this.fireTableDataChanged(); Mensajes.MostrarAdvertencia(ex.getMessage()); } } @Override public void getFirst() { datos.getReload(PagesList.Navegate.goToFirst); this.fireTableDataChanged(); } @Override public void getPrevious() { datos.getReload(PagesList.Navegate.goToPrevious); this.fireTableDataChanged(); } @Override public void getPresent() { datos.getReload(PagesList.Navegate.goToPresent); this.fireTableDataChanged(); } @Override public void getNext() { datos.getReload(PagesList.Navegate.goToNext); this.fireTableDataChanged(); } @Override public void getLast() { datos.getReload(PagesList.Navegate.goToLast); this.fireTableDataChanged(); } @Override } @Override public int[] getAnchors() { return new int[]{500,500}; } @Override public int getRowCount() { return datos.toList().size(); } @Override Venta v = datos.get(rowIndex); switch(columnIndex){ case 0: returnValue = v.getObja(); break; case 1: returnValue =v.getObje(); break; default: break; } return returnValue; } @Override Venta v = datos.get(rowIndex); switch(columnIndex){ case 0: v.setObja((Artefacto)aValue); break; case 1: v.setObje((Estado)aValue); break; default: break; } } @Override public Class getColumnClass(int column) { return getValueAt(0, column).getClass(); } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return columnIndex == 1; } }
Código Java:
Ver original
package app.vistas.paneles; import app.contr.clases.*; import app.contr.util.Conversiones; import app.vistas.facade.FacadeContr; import app.vistas.modelos.*; import app.vistas.util.*; import java.awt.event.*; import java.sql.SQLException; import javax.swing.JFrame; { private final Subastador objs; private TablaGenerica ts; private TablaGenerica tv; initComponents(); this.objs = xobjs; this.padre = xventana; @Override ts = new TablaGenerica(new ModeloSubastaXSub(objs)); ts.cargarTablaGenerica(table_subasta); ts.getModelo().updateTable(null); @Override if(e.getClickCount() == 2){ try { int id = Conversiones.CInt(ts.getTabla().getValueAt(ts.getTabla().getSelectedRow(), 0).toString()); Subasta objsub= FacadeContr.getInstance().manSubastas().findById(id); tv = new TablaGenerica(new ModeloVentaX(objsub)); tv.getTabla().setDefaultRenderer(Estado.class, new EstadoCellRenderer()); tv.getTabla().setDefaultEditor(Estado.class, new EstadoCellEditor(objsub)); tv.cargarTablaGenerica(table_venta); tv.getModelo().updateTable(null); @Override Venta v = objsub.getP().get(tv.getTabla().getSelectedRow()); ((EstadoCellEditor)tv.getTabla().getDefaultEditor(Estado.class)).setVenta(v); } }); Mensajes.MostrarAdvertencia(ex.getMessage()); } } } }); } }); } }
La cuestion es que no sé como pasar la venta seleccionada a la cual cambié el estado con el combobox al actionPerformed del CellEditor.
Espero sus respuestas y Saludos.