Foros del Web » Programación para mayores de 30 ;) » Java »

problemas con Jcombobox y Jtable

Estas en el tema de problemas con Jcombobox y Jtable en el foro de Java en Foros del Web. Hola gente , queria preguntales si alguien tiene idea de como realizar lo siguiente: Estoy haciendo una aplicacion (que necesito terminar con urgencia ) la ...
  #1 (permalink)  
Antiguo 18/06/2009, 17:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 25
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación problemas con Jcombobox y Jtable

Hola gente , queria preguntales si alguien tiene idea de como realizar lo siguiente:

Estoy haciendo una aplicacion (que necesito terminar con urgencia ) la cual consiste en tener un jcombobox con 7 opciones, y una tabla, por defecto cuanco llamo a este formulario el jcomobox esta en la primer posicion y convoco a la jtable asociada a ese dato del jcombobox. El problema consiste en que si selecciono otro item del jcombobox la tabla no se actualiza, es decir los registros que aparecen son los mismos, pero si los registros q asocio son mas que los primeros, entonces en la tabla me aparecen los primeros registros y los ultimos, es decir no me sobreescribe en los datos antiguos.

por ejemplo selecciono en el jcombobox auto, y los registros de la tabla son ford, renault

Luego selecciono motos y los registros son yamaha, Honda, Honda vice

en este caso me aparecen los registros asi: ford, renault, Honda vice.

Aqui le dejo el codigo, espero que entiendan mi pregunta, y si alguien tiene ideas son bienvenidas

Código PHP:
public class buscarc extends javax.swing.JFrame implements ActionListener {
private 
Connection conn;
private 
TableRowSorter<T_carrerasorter;
int area;
String carreraid_carrera;
    
/** Creates new form buscarc */
    
public buscarc() throws SQLException {
       
mdbc=new DBconnection();
       
mdbc.init();
       
conn=mdbc.getMyConnection();
       
stmt conn.createStatement();
       
area=1;
       
initComponents();
       
cargar_area();
       
area_cbox.addActionListener(this);
    }

    private 
void cargar_area() throws SQLException{
      
rs=stmt.executeQuery("Select  A.nombre_areas  from areas as A");
      
ResultSets=new ArrayList<String[]>();
      try{
        while(
rs.next()){
              
String[] row={ rs.getString("nombre_areas")};
            
ResultSets.add(row);
        }
      }
      catch(
Exception e){
       
System.out.println("Problemas de Estructura de Tabla");
      }
      
rs.first();
      
area_cbox.addItem(rs.getString("nombre_areas"));
      while(
rs.next()){
      
area_cbox.addItem(rs.getString("nombre_areas"));
      }
    }

    public 
void actionPerformed(ActionEvent e) {
     
System.out.println(area_cbox.getSelectedItem());
     
areaarea_cbox.getSelectedIndex();
     
areaarea+1;
     
System.out.println(area);
     
filtrado();
    }
   
 private 
void newFilter() {
        
RowFilter rf null;
        
//If current expression doesn't parse, don't update.
        
try {
            
rf RowFilter.regexFilter(filtro.getText(), 1);
        } catch (
java.util.regex.PatternSyntaxException e) {
            return;
        }
        
sorter.setRowFilter(rf);
    }
      public 
String quotate(String content){

        return 
"'"+content+"'";
  }
      private 
void filtrado(){
        
T_carrera model = new T_carrera(area);
        
sorter = new TableRowSorter<T_carrera>(model);
        
jTable1.setRowSorter(sorter);
        
jTable1.getSelectionModel().addListSelectionListener(
                new 
ListSelectionListener() {
                    public 
void valueChanged(ListSelectionEvent event) {
                        
int viewRow jTable1.getSelectedRow();
                        if (
viewRow 0) {
                            
//No seleccione una fila.
                        
} else {
                            
int modelRow =0;
                            
id_carrera=(String.valueOf(jTable1.getValueAt(viewRow,modelRow)));
                            
modelRow =1;
                            
carrera=(String.valueOf(jTable1.getValueAt(viewRow,modelRow)));
                            }
                    }
                }
        );
        
filtro.getDocument().addDocumentListener(
                new 
DocumentListener() {
                    public 
void changedUpdate(DocumentEvent e) {
                        
newFilter();
                    }
                    public 
void insertUpdate(DocumentEvent e) {
                        
newFilter();
                    }
                    public 
void removeUpdate(DocumentEvent e) {
                        
newFilter();
                    }
                });
      }




Con esta clase obtengo los registros para el jtable

Código PHP:

public class T_carrera extends AbstractTableModel{
    private 
int colnum=2;
    private 
int rownum;
    private 
ResultSet rs;
    private 
java.sql.Statement stmt;
    private 
DBconnection mdbc;
    private 
boolean DEBUG=false;
    private 
String[] colNames={"N°","Carreras"};
    private  
ArrayList<String[]> ResultSets;


    public 
T_carrera(int area) {
        
mdbc= new DBconnection();
        
mdbc.init();
        
Connection conexion=mdbc.getMyConnection();
        try{
            
stmtconexion.createStatement();
        }catch (
SQLException ex) {
            
ex.printStackTrace();
        }
        
rs=null;
        
System.out.println(area);
        try{
            
rs=stmt.executeQuery("Select C.id_carrera, C.nombre_carrera, C.id_areas  from carrera as C where C.id_areas='"+area+"'order by C.id_carrera");
        }
        catch(
SQLException e){}

      
ResultSets=new ArrayList<String[]>();

      try{
        while(
rs.next()){

              
String[] row={
                
rs.getString("id_carrera"),rs.getString("nombre_carrera")};
              
System.out.println(rs.getString("id_carrera"));
              
System.out.println(rs.getString("nombre_carrera"));
              
ResultSets.add(row);
         }
      }
      catch(
Exception e){
          
System.out.println("Problemas de Estructura de Tabla al cargar tabla");
            }

    }

    public 
Object getValueAt(int rowindexint columnindex) {
       
String[] row=ResultSets.get(rowindex);
       return 
row[columnindex];

    }

    public 
int getRowCount() {
        return 
ResultSets.size();
    }

    public 
int getColumnCount() {
        return 
colnum;
    }

    public 
String getColumnName(int param) {

       return 
colNames[param];
    }

    public 
boolean isCellEditable(int rowint col) {
                return 
false;
    }

     public 
void setValueAt(Object valueint rowint col) {
            if (
DEBUG) {
                
System.out.println("Setting value at " row "," col
                                   
" to " value
                                   
" (an instance of "
                                   
value.getClass() + ")");
            }
            
String[] data=ResultSets.get(row);
            
data[row]= (String) value;
            
fireTableCellUpdated(rowcol);

            if (
DEBUG) {
                
System.out.println("New value of data:");
                
printDebugData();
            }
        }

        private 
void printDebugData() {
            
int numRows getRowCount();
            
int numCols getColumnCount();

            for (
int i=0numRowsi++) {
                
System.out.print("    row " ":");
                for (
int j=0numColsj++) {
                    
System.out.print("  " ResultSets.get(i));
                }
                
System.out.println();
            }
            
System.out.println("--------------------------");
        }


  #2 (permalink)  
Antiguo 21/06/2009, 09:39
 
Fecha de Ingreso: abril-2009
Mensajes: 82
Antigüedad: 15 años
Puntos: 2
Respuesta: problemas con Jcombobox y Jtable

Buenas:

Has probado a borrar todas las filas de la tabla antes de volver a rellenarlas??

Saludos.
  #3 (permalink)  
Antiguo 21/06/2009, 13:21
 
Fecha de Ingreso: marzo-2009
Mensajes: 25
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación Respuesta: problemas con Jcombobox y Jtable

Hola, si probe borrar las filas, tambien borrar la tabla y volver a crearla, pero ninguna funciono

Gracias por contestar
  #4 (permalink)  
Antiguo 25/06/2009, 21:42
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: problemas con Jcombobox y Jtable

autos motos son columnas ?
en ese caso tu clase que implementa el editor de tu tabla en el metodo que devuelve el objecto usa el paramentro de column(int) y carga el combo dependiendo de la columna de la tabla.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:26.