Diseño: 2 jcomboboxes, la lista del cuadro 2 depende de la selección del cuadro 1, datos de XML

Estoy abrumado por intentar diseñar una solución para este problema: es un subproducto de la inexperiencia.

Mi objetivo es leer un archivo de entrada XML, almacenar la información del XML y rellenar dos cuadros combinados con datos del XML. El contenido del segundo cuadro combinado cambiará según la selección en el primero.

Dada esta estructura XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Category xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Node>
    <ID>Unique string</ID>
    <Name>Unique string</Name>
    <Code>Generic string<Code>
    <Kind>Generic string</Kind>
    <Frame>Generic string</Frame>
            ...
</Node>
    ...
</Category>

Primer cuadro combinado: debe contener solo los valores únicos que se encuentran en la sección Tipo.

Segundo cuadro combinado: contiene TODAS las entradas de Nombre de cada Nodo cuyo Tipo es igual al Tipo seleccionado en el primer cuadro combinado.

Respecto a la fuente XML: se mantiene y genera externamente. Los valores en la sección de ID siempre serán únicos. Los valores en la sección Nombre siempre serán únicos. El esquema (supuestamente) nunca cambiará. Nuevos valores únicos pueden aparecer en la sección Tipo en el futuro.

Mi solución propuesta: crear un XMLNode de clase para representar un nodo desde la fuente XML. Los miembros de la clase XMLNode corresponden a las etiquetas en cada Nodo. Recorra todos los Nodos y cree un XMLNode para cada uno. Mientras recorre los nodos: agregue objetos XMLNode en un mapa hash, con Keys = XMLNode.ID y vals = el XMLNode. Crea una matriz de tipos únicos.

Rellene el cuadro combinado uno de la matriz de entradas de tipo. Rellene el cuadro combinado dos de los datos de Nombre para cada uno.

¿Es este un enfoque apropiado o he pasado por alto una solución mejor / más fácil / más elegante? Si estoy en el camino correcto, ¿hay fallas obvias en mi solución propuesta?

Respuestas a la pregunta(2)

Su respuesta a la pregunta