Estoy creando un programa de escritorio y el problema que tengo es que cuando agrego valores a una fila agrego un Jcombobox en esa fila para modificar el valor de precio el combobox va ser el descuento que le hace al cliente hasta aqui todo bien el problema surge cuando agrego la otra fila con el combobox la primera fila agarra los valores de la segunda fila
Por favor ayudame.
Aqui pongo el codigo:
Código PHP:
Ver original
public class ModeloVentas { private static String driver = "org.postgresql.Driver"; private static String ruta = "jdbc:postgresql://localhost:5432/ProAdmin"; private static String user = "publiventa"; private static String password = "Gus4777"; private String sql; private Statement st=null; private ResultSet r=null; private JComboBox des; private String precio; public ModeloVentas() { des = new JComboBox(); } public static Connection conexion(){ Connection con = null; try{ Class.forName(driver); con= DriverManager.getConnection(ruta,user,password); }catch(Exception e){ JOptionPane.showMessageDialog(new JFrame(),"¡Error al conectar con la base de datos!","ERROR",JOptionPane.INFORMATION_MESSAGE); } return con; } public float descuento(float precio, int porcentaje){ return precio*porcentaje/100; } public void cambioPrecio(String valor, JComboBox des, String precio, JTable tb){ try { int a = 0; sql = "SELECT descuento[1] AS des1, descuento[2] AS des2, descuento[3] AS des3,descripcion " + "FROM articulos WHERE descripcion = '" + valor + "'"; st = conexion().createStatement(); r = st.executeQuery(sql); switch(des.getSelectedIndex()){ case 1: a = r.getInt("des1"); break; case 2: a = r.getInt("des2"); break; case 3: a = r.getInt("des3"); break; default: a = 0; break; } DecimalFormat format = new DecimalFormat("###,###.00"); float descuento = descuento(Float.parseFloat(precio),a); float total = Float.parseFloat(precio) - descuento; tb.getModel().setValueAt(format.format(total), tb.getSelectedRow(), 7); } } catch (SQLException ex) { } } public void Buscar(final String valor, DefaultTableModel modelo, final JTable tb, int item){ try{ sql = "SELECT categoria, articulo, serial, seriales, cantidad, precio " + "FROM articulos WHERE descripcion = '" + valor + "'"; st = conexion().createStatement(); r = st.executeQuery(sql); precio = r.getString("precio").replace(",", "."); Object[] fila = new Object[8]; fila[0] = item; fila[1] = r.getString("categoria"); fila[2] = r.getString("articulo"); fila[3] = valor; fila[5] = "1"; fila[6] = "Precio Actual"; fila[7] = precio; String ar1 = r.getString("seriales").replace("{",""); String ar2 = ar1.replace("}", ""); fila[4] = seriales[0]; /* for(int i=0;i<seriales.length;i++){ serial.addItem(seriales[i]); }*/ modelo.addRow(fila); des.addItem("Precio Actual"); des.addItem("Precio 1"); des.addItem("Precio 2"); des.addItem("Precio 3"); TableColumn tl = tb.getColumnModel().getColumn(6); tl.setCellEditor(new DefaultCellEditor(des)); DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setToolTipText("Elige el tipo de descuento"); tl.setCellRenderer(renderer); r.close(); st.close(); conexion().close(); } des.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if(des.getSelectedIndex() != -1){ } } }); }catch(SQLException ex){ } } }