elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda sobre COLORES en JLIST
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre COLORES en JLIST  (Leído 3,041 veces)
Benito123

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Duda sobre COLORES en JLIST
« en: 20 Junio 2022, 04:55 am »

Buenas, hace dias estoy buscando en google una forma para ponerle un color permanente a una celda en especifico de una JList, alguien sabe como es el metodo? Desde ya, muchas gracias


En línea

LlopoRobot

Desconectado Desconectado

Mensajes: 116


Un instante, una mente al unísono


Ver Perfil
Re: Duda sobre COLORES en JLIST
« Respuesta #1 en: 17 Abril 2023, 10:14 am »

Para poner un color permanente a una celda específica en una JList, puedes crear un modelo de lista personalizado que extienda DefaultListModel y anular el método getListCellRendererComponent para devolver un componente de celda personalizado que tenga un color de fondo diferente para la celda deseada. Aquí hay un ejemplo de cómo hacerlo:

Código
  1. import java.awt.Color;
  2. import java.awt.Component;
  3.  
  4. import javax.swing.DefaultListModel;
  5. import javax.swing.JFrame;
  6. import javax.swing.JList;
  7. import javax.swing.JScrollPane;
  8. import javax.swing.ListCellRenderer;
  9.  
  10. public class ColoredJListDemo extends JFrame {
  11.  
  12.    private static final long serialVersionUID = 1L;
  13.  
  14.    public ColoredJListDemo() {
  15.        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16.        setTitle("Colored JList Demo");
  17.  
  18.        // Crea un modelo de lista personalizado con algunos datos de ejemplo
  19.        DefaultListModel<String> model = new DefaultListModel<String>();
  20.        model.addElement("Item 1");
  21.        model.addElement("Item 2");
  22.        model.addElement("Item 3");
  23.  
  24.        // Crea una lista personalizada que use el modelo personalizado y el renderizador personalizado
  25.        JList<String> list = new JList<String>(model);
  26.        list.setCellRenderer(new ColoredListCellRenderer(1, Color.YELLOW)); // La celda 1 se muestra con un color de fondo amarillo
  27.  
  28.        // Agrega la lista a un panel de desplazamiento y lo agrega al marco
  29.        JScrollPane scrollPane = new JScrollPane(list);
  30.        getContentPane().add(scrollPane);
  31.  
  32.        // Establece el tamaño y la posición del marco y lo muestra
  33.        setSize(200, 200);
  34.        setLocationRelativeTo(null);
  35.        setVisible(true);
  36.    }
  37.  
  38.    // Renderizador personalizado que establece el color de fondo de una celda específica
  39.    private static class ColoredListCellRenderer implements ListCellRenderer<String> {
  40.  
  41.        private int targetIndex;
  42.        private Color backgroundColor;
  43.  
  44.        public ColoredListCellRenderer(int targetIndex, Color backgroundColor) {
  45.            this.targetIndex = targetIndex;
  46.            this.backgroundColor = backgroundColor;
  47.        }
  48.  
  49.        @Override
  50.        public Component getListCellRendererComponent(JList<? extends String> list, String value, int index,
  51.                boolean isSelected, boolean cellHasFocus) {
  52.  
  53.            Component component = list.getCellRenderer().getListCellRendererComponent(list, value, index, isSelected,
  54.                    cellHasFocus);
  55.  
  56.            if (index == targetIndex) {
  57.                component.setBackground(backgroundColor);
  58.            }
  59.  
  60.            return component;
  61.        }
  62.  
  63.    }
  64.  
  65.    public static void main(String[] args) {
  66.        new ColoredJListDemo();
  67.    }
  68.  
  69. }

En este ejemplo, el método getListCellRendererComponent devuelve el componente de celda predeterminado obtenido a través de list.getCellRenderer().getListCellRendererComponent y establece el color de fondo en backgroundColor si la celda actual es la celda objetivo (índice 1 en este caso). Luego, agrega el componente de celda modificado al modelo de lista personalizado para su uso en la lista.


En línea

I'm woman baby. Can't you tell?
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre combinación de colores
Diseño Gráfico
vijoin 6 3,783 Último mensaje 7 Julio 2004, 10:52 am
por theskull
Pregunta sobre Ilustrador y separación de colores para impresión en serigrafía
Diseño Gráfico
joselff 5 6,581 Último mensaje 20 Octubre 2010, 04:43 am
por joselff
[Duda]Establecer opciones de JList
Java
egyware 0 2,952 Último mensaje 7 Marzo 2011, 05:19 am
por egyware
Trabajando Con Colores En Java Y Netbeans (duda)
Java
TeclaFurtiva 1 4,706 Último mensaje 16 Agosto 2012, 05:46 am
por TeclaFurtiva
Vbs code nun funka y pregunta sobre msgbox y colores
Scripting
derryp7r 0 1,683 Último mensaje 18 Noviembre 2012, 19:32 pm
por derryp7r
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines