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

repaint() - Modelo de tabla

Estas en el tema de repaint() - Modelo de tabla en el foro de Java en Foros del Web. Buenas! Estoy intentando entender el comportamiento de esta funcion y si es lo que debo usar. Os cuento. Parte Breve Cuando llamo a repaint(), no ...
  #1 (permalink)  
Antiguo 20/07/2012, 03:12
 
Fecha de Ingreso: abril-2012
Mensajes: 43
Antigüedad: 12 años
Puntos: 1
repaint() - Modelo de tabla

Buenas! Estoy intentando entender el comportamiento de esta funcion y si es lo que debo usar.


Os cuento.

Parte Breve

Cuando llamo a repaint(), no se llama al modelo de la tabla y asi a todas sus funciones entre ellas getColumnName y getValueAt, el getValueAt me lo hace bien pues me varia los valores, pero en el getColumnName, siempre me muestra lo mismo, yo quiero que muestre unas cabeceras dependiendo de una cosa u otra, el repaint() como funciona exactamente, llama al modelo siempre?
Merci

Parte extendida

Estoy haciendo el diseño de una tabla con unas columnas fijas (5) fijas y otras variables(5) dependiendo de lo que se elija mediante 2 JComboBoxes.

JComboBox1 tiene por ejemplo A,B,C,D,E,Todos
JComboBox2 tiene por ejemplo 1,2,3,4,5,Todos

Por defecto estara JComboBox1 puesto a A
Por defecto estara JComboBox2 puesto a Todos

Asi se mostrara la tabla con las columnas : fija1 fija2 fija3 fija4 fija5 variable1 variable2 variable3 variable4 variable5

En cambio si elijo :

Por defecto estara JComboBox1 puesto a Todos
Por defecto estara JComboBox2 puesto a 1

Se mostrara la tabla con las columnas : fija1 fija2 fija3 fija4 fija5 variable6 variable7 variable8 variable9 variable10

Para esto he sobreescrito la funcion public String getColumnName(int col) del AbstractTableModel de la siguiente manera:

Código PHP:
public String getColumnName(int col)
        {
            if (
jComboBoxPaso.getSelectedIndex() == jComboBoxPaso.getModel().getSize() - 1)
            {    
                
            return 
columnA[col];
            
            
            
            }
            
            if (
jComboBoxInfo.getSelectedIndex() == jComboBoxInfo.getItemCount() - 1)
            {
                
            return 
columnB[col];
            } else
            {
            return 
"";
            }
        } 
Donde columnA y columnB son las columnas , en caso de que este puesto el JComboBox, alguno de ellos puesto a todos.

A mis dos JComboBox les he añadido unos ActionListener:

Código PHP:
jComboBoxPaso.addActionListener(new java.awt.event.ActionListener()
        {
          public 
void actionPerformed(ActionEvent e)
          {
                if (
jComboBoxPaso.getSelectedIndex() == jComboBoxPaso.getItemCount() - 1
                {
                    
System.out.println("jComboBoxPaso.getSelectedIndex() en el addActionListener es :" jComboBoxPaso.getSelectedIndex());
                    
jComboBoxInfo.setSelectedIndex(0);
                    
jTableDown.repaint();
                } else {
                    
jTableDown.repaint();
                }
              
          }
          
        }); 
Código PHP:
jComboBoxInfo.addActionListener(new java.awt.event.ActionListener() {
            public 
void actionPerformed(ActionEvent e) {
                if (
jComboBoxInfo.getSelectedIndex() == jComboBoxInfo.getItemCount() - 1
                {
                    
System.out.println("jComboBoxInfo.getSelectedIndex() en el addActionListener es :" jComboBoxInfo.getSelectedIndex());
                    
jComboBoxPaso.setSelectedIndex(0);
                    
jTableDown.repaint();
                    
                } else 
                {
                    
jTableDown.repaint();
                }

            }

        }); 

La cuestion es que el repintado de los valores, que tambien son distintos dependiendo de la opcion que se elija lo hace, pero no asi las cabeceras.

Al llamar al repaint, no llamas al modelo de la tabla y con eso a la funcion getColumnName tambien?? Merci!


P.D.1 Por lo que voy viendo cuando hago repaint() va recurriendo al getValueAt del modelo a cada momento, pero no recurre al getColumnName se ve que solo lo hizo al principio y ya no mas, como si esperara que la cabecera siempre va a ser fija, pero claro en este caso no lo es.

Última edición por MasterJose; 20/07/2012 a las 03:55
  #2 (permalink)  
Antiguo 23/07/2012, 00:56
 
Fecha de Ingreso: abril-2012
Mensajes: 43
Antigüedad: 12 años
Puntos: 1
Respuesta: repaint() - Modelo de tabla

Nadie? ;-(

Etiquetas: modelo, repaint, string, 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 21:01.