JList mit farbigen eintraegen

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Leute,

Ich habe ein JList in dem ich folgende Elemete anzeige:
Code:
    class buddieEntry  implements Comparable {
            boolean status;
            String login;
            String username;

            public String getUsername() {
                return username;
            }

            public void setUsername(String username) {
                this.username = username;
            }

            public String getLogin() {
                return login;
            }

            public void setLogin(String login) {
                this.login = login;
            }


            public String toString() {
                return username + " (" + login + ")";
            }
              public int compareTo(Object o) {
                    return login.compareTo(((buddieEntry) o).login);
                }

        }

Jetzt moechte ich wenn der Status true ist die elemte gruen angezeigt bekommen und sonst rot.

Ich fuege die elemte so hinzu:
Code:
 void refreshBuddylist() {
        SatelliteSimpleUser [] o = myMainE.myServer.getContactList(myMainE.mySettings.username);
        modelBuddy.clear();
        lstBuddy.clear();
        if(o!=null) {
            for(int i = 0; i < o.length; i++) {
                // lstBuddy.add(o[i]);
                buddieEntry u =  new buddieEntry() ; // (SatelliteSimpleUser) o[i];
                u.login = o[i].getStrLogin();
                u.username =  o[i].getName();
                lstBuddy.add(u);
                //modelBuddy.add(i,u.getStrLogin());

            }
            Collections.sort(lstBuddy);

            for(int i = 0; i<lstBuddy.size(); i++) {
                String test = lstBuddy.get(i).toString();

                 modelBuddy.add(i,lstBuddy.get(i));

            }
        }
    }

und habe folgene Variablen:

Code:
    DefaultListModel modelBuddy = new DefaultListModel();
    DefaultListModel modelResults = new DefaultListModel();

    java.util.List lstMessage = new ArrayList();
    java.util.List lstBuddy = new ArrayList();

ich bin leider "noch" kein Profi - so ich hoffe das mir jemand weiterhelfen kann
Gruss Soulfly
 
1. Klassennamen groß schreiben!

2. Du musst einen eigenen ListCellRenderer setzen (JList#setCellRenderer. Dazu leitest du am besten von DefaultListCellRenderer ab und überschreibst:
Code:
public Component	getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
Das trickreiche ist, dass das Component, dass DefaultListCellRenderer, die Klasse ist von JLabel abgeleitet, zurückgibt, this ist. Rufe also am besten (performantesten) am Anfang super.getListCellRendererComponent(bla) auf, mache dann this.setBackground(xxx) und returne this.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben