Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105

    Togliere bordo alla selezione di un item

    Ho una lista e vorrei che quando clicco su di un'item l'unica cosa che deve cambiare è il colore del testo.
    Funziona tutto, o quasi, nel senso che comunque rimane quel bordo blu quando clicco su un item! Come lo tolgo o gli cambio colore?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    se hai fatto tutto quello che hai detto, ovvero cambiare colore etc etc probabilmente ti mancava tanto così "." dal togliere anche il bordo: si passa comunque dal ListCellRenderer e tra le varie cose, si setta il Border a null prima di ritornare la JLabel renderizzata come serve a noi.

    Ti lascio del codice strippato di tutti gli orpelli inutili:
    codice:
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    /**
     *
     * @author Andrea
     */
    public class JListTest extends JFrame {
        
        private class MyListCellRenderer extends DefaultListCellRenderer {
            
            private DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();
                    
            
            public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
                JLabel rendered = (JLabel)defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
                rendered.setBorder(null);            
                return rendered;
            }
        }
        
        public JListTest() {
            super("Test");
            String[] data = new String[] {"Mickey Mouse", "Minnie Mouse", "Donald Duck"};        
            JList list = new JList(data);
            list.setCellRenderer(new MyListCellRenderer());
            this.getContentPane().add(new JScrollPane(list), BorderLayout.CENTER);
            this.setSize(400,400);
            this.setVisible(true);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        
        public static void main (String[] args) {
            new JListTest();
        }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Grazie mille Andrea è il secondo post in cui mi illumini oggi! ahahah Ho fatto qualche giro su google ma non ho trovato molto, a cosa serve questo cellRenderer? p-s. Funziona

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Puoi cominciare a documentarti sul siti di Java consultando nello specifici il così detto swing tutorial. L'argomento è un po' troppo vasto per essere liquidato qui in un thread
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.