ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
371
371
EMPFEHLEN
-
16.09.09 13:09 #1
Hallo zusammen,
ich arbeite gerade an einem kleinem Projekt, dass mir helfen soll id3-tags umzugestalten. Ich weiß es gibt schon solche programme, trotzdem mach ichs am liebsten selber.
Problem ist folgendes:
Wenn ich eine JList mit icons und Text fülle ( per eigenem Renderer) dann wird das auch zuerst richtig dargestellt.
Doch sobald ich die fenstergröße anpasse, oder Listen-Elemente auswähle sind die icons weg.
Hier der Renderer
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
package jmp3master.browser; import java.awt.Color; import java.awt.Component; import java.io.File; import java.net.URL; import javax.swing.DefaultListCellRenderer; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JList; public class BrowserListRenderer extends DefaultListCellRenderer { private static final long serialVersionUID = 8525635804568827701L; ImageIcon iDir = new ImageIcon(); //Dieses Icon sollte so aussehen wie ein Ordner /** * This is a special ListCellRenderer only for the BrowserListRenderer */ public BrowserListRenderer(ImageIcon iInDir){ try{ URL urlDir = this.getClass().getResource("../../folder.gif"); iDir = new ImageIcon(urlDir); File f = new File(urlDir.toURI()); if(f.exists()){ System.out.println("True"); } } catch(Exception e){ } } @Override public Component getListCellRendererComponent(JList jlList, Object oValue, int nRow, boolean bIsSelected, boolean bHasFocus) { System.out.println(oValue.toString()); //Ein bisschen Debugging JLabel jlReturn = (JLabel) super.getListCellRendererComponent(jlList, oValue, nRow, bIsSelected, bHasFocus); //Das Rückgabe-JLabel jlReturn.setOpaque(true); String strInput = oValue.toString(); //Der gegebene Wert //Der Input ist so aufgebaut, dass die ersten 4 Buchstaben der Datei-Endung entsprechen. //Deshalb müssen wir den String nun teilen String strExtension = strInput.substring(0,4); String strName = strInput.substring(4); //Nun müssen wie noch das richtige Icon Finden if(strExtension.toUpperCase().equals("DIR ")){ jlReturn.setIcon(iDir); jlReturn.prepareImage(iDir.getImage(), jlReturn); } //Und danach den Text einfügen jlReturn.setText(strName); if(bIsSelected){ jlReturn.setBackground(Color.BLACK); } else{ jlReturn.setForeground(Color.BLUE); } if(bHasFocus){ jlReturn.setForeground(Color.PINK); } return jlReturn; } }
ICh hoffe, die Notation stört nicht.
Die elemente werden per DefaultListModel in die Liste eingefügt.die ärzte | Wizo | Patti Smith
Wer die nich kennt der verpasst was
-
16.09.09 19:03 #2
Neue Info:
Benutze ich anstelle eines Eigenen Icons, Eins aus der MetalIconFactory klappts
Aber warum nicht mit meinen?Geändert von killerkirsche (18.09.09 um 12:45 Uhr)
die ärzte | Wizo | Patti Smith
Wer die nich kennt der verpasst was
Ähnliche Themen
-
Formular läst sich nicht abschicken
Von AZUBI09 im Forum PHPAntworten: 2Letzter Beitrag: 25.09.09, 20:18 -
notebook läst sich nur bis zu einer gewissen Prozentzahl bootn
Von TravelMate292 im Forum Microsoft WindowsAntworten: 3Letzter Beitrag: 23.07.08, 19:16 -
mambo läst mich nicht mehr in den Backend
Von Daviot im Forum Content Management Systeme (CMS)Antworten: 0Letzter Beitrag: 13.06.06, 08:33 -
Exel Makro läst keine Hyperlinks zu
Von ziriander im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 06.09.05, 12:23 -
Eingefügte Ebene aus anderer Datei läst sich nicht bearbeiten
Von protuner im Forum PhotoshopAntworten: 2Letzter Beitrag: 03.08.03, 00:05





Zitieren
Login





