2012-02-12 26 views
5

Tengo un JList con elementos que quiero mostrar dos valores. ¿Hay alguna manera de que muestre un nombre de cadena y luego tenga una cadena justificada a la derecha para mostrar un valor? Buscando algo como esto:JList texto alineación

Title__________________120 
Title2_________________135 

¿Es posible pasar de dos cuerdas a un elemento y tener la primera pantalla de la cadena a la izquierda y la segunda a la derecha?

Respuesta

6

Claro, implementar una costumbre renderer. Puede devolver un JPanel con BorderLayout como componente de representación, con el texto LHS en WEST, y el texto RHS en EAST.

Otra forma es empujar HTML en el renderizador predeterminado (un JLabel), usando una tabla HTML que se extiende a lo largo del 100% del ancho. Aunque el renderizador personalizado sería una mejor opción por varias razones (por ejemplo, no presumiendo que el tipo del renderizador predeterminado es una etiqueta).


BTW - tal vez usted debería considerar el uso de un JTable para este tipo de funcionalidad. No se necesitan hacks ni clases personalizadas.


..does el JTable permite seleccionar elementos?

¡Por supuesto! Aquí hay un ejemplo tomado directamente de How to Use Tables en el tutorial. 'Jane' está seleccionado.

Table with row selected

Una tabla es un poco más de esfuerzo para configurar y hacerlo bien, pero es bien vale la pena el esfuerzo.

¿Un JTable realizar sólo como un JList ..

No, en última instancia, la tabla proporciona una mayor funcionalidad. Pero las cosas que hace que una lista también puede hacer, funcionan (para el usuario) de la misma manera.

+0

¿Podría funcionar una JTable como una JList (lo siento, esta es la primera vez que uso jlists y jtables, así que no estoy familiarizado). Lo que quiero decir es que JList proporciona una interfaz agradable para seleccionar valores, pero ¿permite el jtable seleccionar elementos? – mbreen

+0

Consulte la edición, pero especialmente consulte el enlace 'Cómo usar tablas'. Eso explicará la mayor parte de lo que necesita saber. –

+0

¡Impresionante! ¡Todos aquí en stackoverflow siempre dan respuestas agradables y detalladas incluso para las preguntas más simples! Muchas gracias. – mbreen

Cuestiones relacionadas