En Java swing ¿cómo se puede administrar una lista de cuadros que permitan múltiples paneles para ser seleccionado?

StackOverflow https://stackoverflow.com/questions/378161

  •  22-08-2019
  •  | 
  •  

Pregunta

Estoy trabajando en una aplicación en la empresa que realiza el seguimiento de un grupo de tareas. Yo quería tener un monitor tarea sencilla que indique el nombre de la tarea y el estado de la tarea. Necesito esto para mirar un poco agradable, no soy un diseñador así que lo que me va a chupar, pero una pantalla de texto básico no funcionará para las necesidades del proyecto.

Lo que estoy esencialmente tratando de hacer es mostrar algo similar a la ventana de Firefox descarga, los I-Tunes ventana de descarga, y bien podría nombrar más, pero todos se parecen básicamente el mismo. En cada una de estas aplicaciones, cada uno de los paneles de progreso ‘’ es seleccionable. Así que para poner en práctica esto pensé que sería fácil de usar sólo una lista de JPanels cada uno con un JProgressBar y un JLabel, cada uno de los cuales solo se puede aceptar el foco para determinar si se seleccionan y otros. Pensé que esto iba a ser una tarea fácil, pero si uso un JList sólo muestra texto. Yo a continuación, sólo pensé que podría mostrar todos los paneles de tareas en un panel más grande, pero no puedo conseguir los paneles interiores para reconocer el enfoque.

¿Hay un patrón para esto? ¿Hay una solución estándar de laminado que yo no he encontrado? O hay un método mejor para hacer esto? No quiero volver a inventar la rueda, pero pensé que esto estaba a punto de ser simple.

¿Fue útil?

Solución

suena como lo que usted puede estar buscando es un JList .

Puede añadir sus artículos a los de JList añadiendo en primer lugar su "tarea" a la del objeto JList ListModel (ver la Crear un modelo sección de Los Tutoriales de Java), y luego usted querrá asignado una costumbre ListCellRenderer que aceptará su 'tarea' y hacer que en el JList como JPanel en la propia lista. La clave aquí es hacer que su encargo ListCellRenderer poder mostrar su "tarea" en el JList la forma en que desea que se muestre en la JList.

Tome una mirada hacia el rel="noreferrer"> sección de la Cómo utilizar listas página de los tutoriales de Java. Se describirá cómo hacer que su ListCellRenderer personalizada para que pueda representar a su "tarea" como cualquier cosa que desee.

Para hacerlo breve, se pondrá en marcha el ListCellRenderer interfaz mediante la aplicación de la getListCellRendererComponent que devolverá un Component que es la representación de su tarea en el JList. Es probable que desee, ya sea a construir o crear instancias de su JPanel en este método y lo devuelve como el Component.

Otros consejos

La forma estándar de hacer este tipo de cosas es utilizar JTable (o JList) como un contenedor.

Usted no tiene que utilizar por defecto renderes fot celdas de la tabla, pero se puede especificar su propio procesador de células específicas. Echar un vistazo a de Celda

¿Qué tal un JTable (que se puede configurar para permitir que múltiples filas para ser seleccionado) con un JPanel interno que ocupa la celda individual en cada fila, que contiene una JProgressBar y una JLabel. O usted podría utilizar un JList con la misma estructura que acabo de describir.

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