JList con botones

susana
27 de Octubre del 2004
Hola a todos:

Tengo un JList con Strings, pero ¿se puede hacer con un array de JButton?

Muchas gracias


dr250976
27 de Octubre del 2004
Hola:
La clase JList tiene 4 constructores que son los siguientes:
JList()
JList(ListModel dataModel)
JList(Object[] listData)
JList(Vector listData)

Como ves, el tercero de ellos, admite un array de objetos (por lo que pueden ser cualquier clase que herede de Object)
Lo que no estoy seguro es que visualices el JList con los botones dentro de éste.
Es más problable que obtengas una lista con la identificación de los botones que le has agregado.

Espero haber sido de ayuda
Slds.

chuidiang
27 de Octubre del 2004
El JList admite un ListCellRender (o algo asi). Esta clase es la que dice cada item de la lista cómo se pinta. Por defecto devuelve un JLabel con el texto del item. Puedes hacerte una clase específica que devuelva JButton y así verás botones en la lista.

El JList unicamente hace una "foto" del componente que le devuelve el ListCellRenderer y lo pinta, por lo que solo tendrás una foto del botón. No se podrá pulsar.

Si quieres que el botón sea "pulsable", creo que sería mejor un JTable. Este igualmente admite el TableCellRenderer, pero además admite un TableCellEditor. El componente que devuelva este TableCellEditor es el que se pintará cuando se haga click sobre la celda de la tabla, es decir, se pintará tu botón como tal (no la foto).

En http://www.geocities.com/chuidiang/java/ tienes ejemplos para cambiar tanto el render como el editor de una tabla. Un JList es muy similar, solo que no tiene editor (creo).

Se bueno.