Jeg har bikset et lille eksempel sammen. I version 1.4 kan du nok benytte Javas Drag and drop, men det kræver lidt mere kode (og tid:) )
import javax.swing.*;
import java.awt.event.*;
public class MyFrame extends JFrame
{
JPanel p1;
JList jlist;
String[] data = {"zero", "one", "two", "three", "four"};
int indexStart;
int indexEnd;
public MyFrame()
{
super("Drag and drop test (coded)");
setSize(300,300);
p1 = new JPanel();
p1.setSize(getWidth(),getHeight());//same as frame
jlist = new JList();
//you could probably use another JListModel implementation
jlist.setModel(new DefaultComboBoxModel(data));
MouseListener mouseListener = new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
//keep start index
indexStart = jlist.locationToIndex(e.getPoint());
System.out.println("Press on Item " + indexStart);
}
public void mouseReleased(MouseEvent e)
{
//keep end index
indexEnd = jlist.locationToIndex(e.getPoint());
String valueAtIndexStart = (String) ((DefaultComboBoxModel)jlist.getModel()).getElementAt(indexStart);
((DefaultComboBoxModel)jlist.getModel()).removeElementAt(indexStart);
((DefaultComboBoxModel)jlist.getModel()).insertElementAt(valueAtIndexStart, indexEnd);
jlist.setSelectedIndex(indexEnd);
System.out.println("Release on Item " + indexEnd);
}
};
jlist.addMouseListener(mouseListener);
p1.add(jlist);
getContentPane().add(p1);
setVisible(true);
}
public static void main(String args[])
{
MyFrame f = new MyFrame();
}
}