[URL="http://www.subirimagenes.net/i/131004064415224533.jpg"]http://www.subirimagenes.net/i/131004064415224533.jpg[/URL]
Mis codigos son los siguientes:
ESTA ES LA CLASE QUE CONTIENE EL FORMULARIO Y TODOS LOS COMPONENTES
Código:
package consultaproductos; import javax.swing.JOptionPane; public class ConsultarProductos extends javax.swing.JFrame { TableModelProductosDisponibles productosDisponiblesModel=new TableModelProductosDisponibles(); Factura facturaModel=new Factura(); public ConsultarProductos() { initComponents(); inicializarColumnasTablaProductosDisponibles(); } private void inicializarColumnasTablaProductosDisponibles() { javax.swing.table.TableColumnModel tCModel=new javax.swing.table.DefaultTableColumnModel(); for(int i=0;i<3;i++) { javax.swing.table.TableColumn columna=new javax.swing.table.TableColumn(); switch(i) { case 0: columna.setHeaderValue("Producto"); break; case 1: columna.setHeaderValue("Precio"); break; case 2: columna.setHeaderValue("Cantidad"); } tCModel.addColumn(columna); } tablaDisponibles.setColumnModel(tCModel); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); tablaDisponibles = new javax.swing.JTable(); jLabel1 = new javax.swing.JLabel(); jScrollPane2 = new javax.swing.JScrollPane(); tablaCompras = new javax.swing.JTable(); jLabel2 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); tablaDisponibles.setModel(productosDisponiblesModel); jScrollPane1.setViewportView(tablaDisponibles); jLabel1.setText("Productos Disponibles:"); tablaCompras.setModel(facturaModel); jScrollPane2.setViewportView(tablaCompras); jLabel2.setText("Productos a Comprar:"); jButton1.setText("Agregar bolsa de compras"); jButton2.setText("Devolver producto"); jButton3.setText("Realizar Compra"); 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) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 267, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1) .addComponent(jButton1)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addGap(18, 18, 18)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jButton2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 158, Short.MAX_VALUE) .addComponent(jButton3)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2) .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(20, 20, 20) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton2) .addComponent(jButton1)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE) .addComponent(jButton3) .addGap(22, 22, 22)))) ); pack(); }// </editor-fold> // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTable tablaCompras; private javax.swing.JTable tablaDisponibles; // End of variables declaration }
ESTE ES EL CODIGO DE LA CLASE PRODUCTO
Código:
ESTE ES EL CODIGO DE MI MODELCLASS PARA MI TABLApackage consultaproductos; public class Producto { private String nombre; private double precio; private int cantidad; public void setNombre(String nombre){ this.nombre=nombre; } public String getNombre(){ return nombre; } public void setPrecio(double precio){ this.precio=precio; } public double getPrecio(){ return precio; } public void setCantidad(int cantidad){ this.cantidad=cantidad; } public int getCantidad(){ return cantidad; } }
Código:
package consultaproductos; import javax.swing.table.AbstractTableModel; import java.util.List; import java.util.ArrayList; public class TableModelProductosDisponibles extends AbstractTableModel { ArrayList<Producto> listaProductosDisponibles=new ArrayList<Producto>(); //Lo que está dentro de <> se llama genericidad. La clase ArrayList permite crear una lista redimensionable @Override public int getRowCount(){ return listaProductosDisponibles.size(); } @Override public int getColumnCount(){ return 3; } @Override public Object getValueAt(int rowIndex, int columnIndex){ Object returning=new Object(); switch(columnIndex){ case 0: returning=listaProductosDisponibles.get(rowIndex).getNombre(); break; case 1: listaProductosDisponibles.get(rowIndex).getPrecio(); break; case 3: listaProductosDisponibles.get(rowIndex).getCantidad(); } return returning; } }
ESTE ES EL PRINCIPAL
Código:
package consultaproductos; import java.util.Random; public class Prueba { public static void main(String[] args) { String[] nombreProductos={"Lapicero","Cuaderno","Aceite","Pintura","Lentes","Pantalon","Camiseta","Reloj","Calculadora","Computadora","Vaso","Minas","Bolson","Celular","Manzana"}; ConsultarProductos ventanaDeConsulta=new ConsultarProductos(); Random aleatorio=new Random(); for(int i=0;i<nombreProductos.length;i++) { Producto prod=new Producto(); prod.setNombre(nombreProductos[i]); prod.setPrecio(aleatorio.nextDouble()*50); prod.setCantidad(aleatorio.nextInt(50)); System.out.println(prod.getCantidad()); System.out.println(prod.getPrecio()); System.out.println(prod.getNombre()); ventanaDeConsulta.productosDisponiblesModel.listaProductosDisponibles.add(prod); } ventanaDeConsulta.setVisible(true); }