Drop'n'Drag von Labels

f-zoid

Mitglied
also folgendes Problem hab ich:

ich habe eine JList, die ich mir mit hilfe einer DefaultListModel erstelle.
über die liste geh ich mit einem eigen CellRenderer drüber weg, so das die einträge icons und Strings enthalten. soweit alles schön...

nun will ich aber diese teile auf ein jPanel ziehen und da steh ich voll auf'm schlauch...
hab hier ähnliches gefunden mit tree, aber nix mit liste und ich kriegs auch nicht umgebastelt...

bin für jede hilfe dankbar
mfg
 
Hmm ich glaube mal sowas ähnliches gemacht zu haben kannst den Code mal bitte Posten ich kucks mir dann mal an willst bestimmt das was der CellRenderer Rendert woander hin Dragen ne ?
 
Das ist mein CellRenderer:
Code:
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;

public class MyCellRenderer
extends JPanel
implements ListCellRenderer
{
    private JLabel label = null;

    public MyCellRenderer()
    {
        // Konstruktor des JPanels mit FlowLayout aufrufen
        super(new FlowLayout(FlowLayout.LEFT));

        // JPanel undurchsichtig machen
           setOpaque(true);
    
        // JLabel instanzieren, durchsichtig machen und hinzufügen    
        label = new JLabel();
        label.setOpaque(false);
        add(label);                
    }

    public Component getListCellRendererComponent(JList list, // JList Objekt
                                                  Object value, // anzuzeigende Komponente
                                                  int index,    // Zellenindex
                                                  boolean iss,  // Ist selektiert?
                                                  boolean chf)  // Hat den Fokus?
    {
        // JLabel das Icon aus unserem MyListItem zuweisen
        label.setIcon(((ListItem)value).getIcon());

        // JLabel den Text aus unserem MyListItem zuweisen
        label.setText(((ListItem)value).getText());
        
        
       // Hintergrundfarbe des JPanels bei Fokuswechseln definieren
        if(iss) setBackground(Color.lightGray); // Hat den Fokus
        else setBackground(list.getBackground()); // Hat den Fokus nicht

        return this;
    }
}

ListItem ist dabei nur ne Klasse in der ich set und get Methoden habe, in denen ich die Pfade zu den images und den text für das label hinterlege....

hoffe das hilft dir so weiter...

danke für deine mühe, mfg
 
Zurück