G
Guest
Gast
Hallo,
wie kann ich einer JList einen Eintrag hinzufügen?
wie kann ich einer JList einen Eintrag hinzufügen?
DefaultListModel listModel = (DefaultListModel)myList.getModel();
listModel.addElement(element);
listModel.add(index, element);
for (int j = 0; j < namen.size(); j++) {
String hilf = namen.get(j);
if (hilf.startsWith(karte[i])) {
// Ihr Model besorgen
DefaultListModel listModel = (DefaultListModel)list[i].getModel(); //List ist eine JList
listModel.addElement(hilf);
}
}
Hast du mehrere JList-Referenzen in einem Array gespeichert?Code:... = (DefaultListModel)list[i].getModel()
tModel1 = (DefaultListModel)jPartner1.getModel();
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JList$1 cannot be cast to javax.swing.DefaultListMode
An dem JList$1 erkennst du, dass es eine Instanz einer anonymen Klasse ist und ClassCastException sagtMiggel hat gesagt.:Oh, falscher Code Schnippsel,
die Frage ging an Gast, folgende Fehlermeldung ist zu sehen:
Code:Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JList$1 cannot be cast to javax.swing.DefaultListMode
class GenericListModel<T> extends AbstractListModel
{
private static final long serialVersionUID = 1L;
private List<T> data = Collections.synchronizedList(new ArrayList<T>());
public GenericListModel()
{
super();
}
public final void setData( final List<T> newData)
{
data.clear();
data.addAll(newData);
fireContentsChanged(this, 0, data.size()-1);
}
public final List<T> getData()
{
return new ArrayList<T>(data);
}
public final void add(final T value)
{
int changeIndex = data.size();
data.add(value);
fireIntervalAdded(this, changeIndex, changeIndex);
}
public final boolean remove(final T value)
{
boolean result = false;
int index = data.indexOf(value);
if(index >= 0)
{
result = data.remove(value);
fireIntervalRemoved(this, index, index);
}
return result;
}
public final Object getElementAt(int index)
{
return data.get(index);
}
public final int getSize()
{
return data.size();
}
}
abstract class AbstractListCellRenderer<T> extends DefaultListCellRenderer
{
public AbstractListCellRenderer()
{
super();
}
@Override
@SuppressWarnings("unchecked")
public final Component getListCellRendererComponent(final JList list, final Object value, int index, boolean isSelected, boolean cellHasFocus)
{
JLabel label = (JLabel)super.getListCellRendererComponent(list, "", index, isSelected, cellHasFocus);
label.setText(formatValue((T)value));
return label;
}
protected abstract String formatValue(final T value);
}
list.setModel(new GenericListModel<Person>());
list.setCellRenderer(
new AbstractListCellRenderer<Person>() {
private static final long serialVersionUID = 1L;
protected final String formatValue(final Person value)
{
return String.format("%s - %s", value.getNachname(), value.getVorname());
}
}
);