Daten aus einer JList

Cäptin Pommes

Erfahrenes Mitglied
Hallo,

ich habe 2 JList´s und wenn ich auf einen eintrag in der einen Liste klicke soll er verschoben werden in die andere Liste. Das problem ist das ich nihct weiss wie ich ein einzelnes element in einer Liste von der anderen dazu adden kann.
die funktion JList.add(); will eine Componente übergeben haben, aber die funktion JList.getSelectedValue(); gibt keine Componente zurück. Wie kann ich das problem lösen?
 
Versuchs mal so:

Java:
ListModel model = new DefaultListModel();
((DefaultListModel)list.getModel()).addElement(Object);
 
wenn ich das tue sagt er mir

java.lang.ClassCastException: javax.swing.JList$3 cannot be cast to javax.swing.DefaultListModel

und ganz viele andere exceptions .... :(
 
hmm hilft leider nicht, .. immer noch die gleiche fehlermeldung :(
hier mal mein quellcode:

Java:
		final JList choiceList = new JList();
		ListModel model = new DefaultListModel();
		choiceList.setModel(model);
		choiceList.setListData(getLists());
		choiceList.setSelectionMode(DefaultListSelectionModel.SINGLE_SELECTION);
		choiceList.setBounds(25,10,150,300);
		choiceList.addListSelectionListener(new ListSelectionListener()
		{
			
			public void valueChanged( ListSelectionEvent e )
			{
				if(selectionList.getValueIsAdjusting())
					return;
				
				((DefaultListModel) selectionList.getModel()).addElement(choiceList.getSelectedValue());
				
			}
		});
 
Hi!
Die Fehlermeldung sagt doch auch klar, dass du versuchst etwas auf DefaultListModel zu casten, was gar keine ist.
Ergo: Du musst auch nicht der choiceList, sondern der selectionList das DefaultListModel zuweisen!


*grüssle*
 
Zuletzt bearbeitet:
ahh wunderbar danke!

Aber wie bekomme ich das element was ich in die eine Liste gepackt habe aus der anderen gelöscht Mit diesen remove funktionen will es nich klappen :(
 
hmm ich versteh es nicht ... jetzt sagt er mir wieder :

javax.swing.JList$4 cannot be cast to javax.swing.DefaultListModel

obwohl beide Listen nun dieses model zugewiesen bekommen haben.

Java:
choiceList.addListSelectionListener(new ListSelectionListener()
		{
			
			public void valueChanged( ListSelectionEvent e )
			{
				if(selectionList.getValueIsAdjusting())
					return;
				
				((DefaultListModel) selectionList.getModel()).addElement(choiceList.getSelectedValue());
				Object temp = choiceList.getSelectedValue();
				choiceList.clearSelection();
				((DefaultListModel) choiceList.getModel()).removeElement(temp);
				
			}
		});
 
Nicht das selbe Model hinzufügen, sonst hast du (vermutlich) überall die selben Elemente. Wenn du nicht casten kannst, hast du garantiert kein DefaultListModel gesetzt.
 
Zurück