I am using JList of Strings in java swing. I want to have a ListSelectionListener which returns the String of the Listentry, that was selected by the user. But I can't reach the String itself. The only thing that I could find
private void registerListeners()
{
gui.getListMeasurements().addListSelectionListener(new ListSelectionListener()
{
@Override
public void valueChanged(ListSelectionEvent event)
{
System.out.println(event.getSource());
}
});
}
Outputs the following 4 times: javax.swing.JList[,0,0,240x340,alignmentX=0.0,alignmentY=0.0,border=,flags=50331944,maximumSize=,minimumSize=,preferredSize=,fixedCellHeight=-1,fixedCellWidth=-1,horizontalScrollIncrement=-1,selectionBackground=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],selectionForeground=sun.swing.PrintColorUIResource[r=51,g=51,b=51],visibleRowCount=8,layoutOrientation=0]
Nothing in this output refers to the String selected in the list. Neither can I find any useful method for the event. Is it possible to extract Strings the way I described?
gui.getListMeasurements().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
if (e.getSource() instanceof JList) {
JList list = (JList) e.getSource();
int index = list.getSelectedIndex();
Object element = list.getModel().getElementAt(index);
if (element instanceof String) {
System.out.println("Selected value at " + index + " = " + element);
}
}
}
});
Helpful links: