Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/11/2014, 15:51
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: paso de un DefaultTableModel a otro

Hola,

Cita:
Iniciado por lucho248 Ver Mensaje
Código Metodos:
Ver original
  1. public void botonTicket(JButton boton, DefaultTableModel modN){
  2. ...
  3.                 modN = new DefaultTableModel();
  4.                 modN = modelosBotones(modN);
  5. ....

con estas modificaciones logre que haga lo que estoy buscando.
Si alguien me puede indicar como mejorarlo, sera bien venido.
...
Si ya te funciona pues todo está bien, como no sé que hay dentro del método modelosBotones() no sabría decir como lo solucionaste realmente. Aunque me imagino que de alguna forma realizaste un mapping entre modN y las variables estáticas, le pasas la variable y el busca la referencia en las estáticas, posiblemente con ==, y devuelve la estática, realmente saber que hiciste.

Cita:
Iniciado por lucho248 Ver Mensaje
/** Intercambio los DefaultTableModel con este metodo
* @param DefaultTableModel modViejo: el modelo con datos
* @param DefaultTableModel modNuevo: el modelo en blanco, donde se copiaran los datos.
* */
public void modelos(DefaultTableModel modViejo, DefaultTableModel modNuevo) {
int filas = modViejo.getRowCount();
int col = modViejo.getColumnCount();
int i = 0, j = 0;
boolean BFilas = false;
while (i<filas && !BFilas) {

if (modViejo.getValueAt(i,j) == null || modViejo.getValueAt(i,j) == "")
BFilas = true;
else{
while (j < col){

modNuevo.setValueAt(modViejo.getValueAt(i,j), i,j);
modViejo.setValueAt("", i,j);
j++;
}
i++;
j = 0;
}
}
}
[/HIGHLIGHT]

Si alguien me puede indicar como mejorarlo, sera bien venido.
Esa parte no comprendo por qué es necesaria, con lo que expliqué no es necesario copiar un modelo sobre otro. Al fin y al cabo mM1, es una instancia de un TableModel. Tampoco creo que sea un asunto sumamente importante, si a ti te funciona pues ya estás hecho.

Conceptos que posiblemente te sean de utilidad,

1. Heredar los botones (JButton) que incluya en su definición un modelo TableModel, puesto que cada botón tiene un TableModel asociado. (Evitas los 'Array Paralelos' o el mapping que estás usando). Para eso tienes que saber como funciona la herencia.

2. No copiar los TableModel uno sobre otro, usar las referencias, puesto que al fin y al cabo son TableModel's. Técnicamente un Model no debe mantener un estado (Stateless), así que copiar uno sobre otro me parece innecesario.

3. Heredar los TableModel (AbstractTableModel) por uno tuyo que ya tenga los títulos de las columnas y tenga métodos utilitarios como isEmpty(), que evidentemente lo necesitas y lo estas usando regularmente. Usando herencia y reutilizar código, no copiar y pegar el mismo código por todo el programa (esto no es PHP, es broma, es broma), por ejemplo, isEmpty():

(auxModel.getValueAt(0, 0).equals("") || auxModel.getValueAt(0, 0).equals(null));

Y así otra serie de cosas, pero eso ya te queda de tarea si lo quieres hacer,

Saludos,

Última edición por HackmanC; 11/11/2014 a las 16:07 Razón: saber como lo arreglaste