Pregunta

Tengo 3 ArrayLists y un JTable.
Me gustaría ser capaz de añadir / elementos de editar / eliminar de la seleccionado (de uno de los 3) ArrayList mediante la selección de los elementos de la JTable y por ejemplo hacer clic en un botón.

Tengo este código para utilizar sólo una ArrayList:

/* ... */
EventList<MyClass> eventList = GlazedLists.eventList(myFirstArrayList);
SortedList<MyClass> sortedList = new SortedList<MyClass>(eventList, null);
filterList = new FilterList<MyClass>(sortedList);
EventTableModel<MyClass> listModel = new EventTableModel<MyClass>(filterList,
        myTableFormat);
table.setModel(listModel);
TableComparatorChooser.install(table, sortedList,
        AbstractTableComparatorChooser.MULTIPLE_COLUMN_MOUSE);
selectionModel = new EventSelectionModel<MyClass>(filterList);
table.setSelectionModel(selectionModel);
/* ... */

¿Cómo podría cambiar el fuente de la EventList o la FilterList al 2. o 3. ArrayList por lo que si la edición EventList se modificará el ArrayList fuente también?

¿Fue útil?

Solución

Por lo que yo sé, listas esmaltadas no se encargará propagación de los cambios en sus listas de eventos de nuevo a su ArrayLists subyacentes. De hecho, en su ejemplo, su lista de eventos y la lista de arreglo no están vinculados de ninguna manera - la lista de eventos solo contiene todos los mismos elementos que la lista de arreglo. Consulte el Javadoc para el ayudante estática GlazedLists.eventList aquí

Lo que es probable que desee hacer es instalar un oyente en su lista de eventos y propagar cualquier cambio en su lista de arreglo. También asegúrese de que usted manipula la lista de eventos en respuesta a la supresión eventos GUI. Si modifica la lista de filtros de los acontecimientos no se propagarán hacia atrás a la lista de eventos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top