Hallo allerseites!
Isch hab do ä kläänes Problemsche...
Also, ich nutze JList um mir eine Liste mit verschiedenen Werten anzeigen zu lassen.
Mit getLastIndex() sollte ich die Listennummer des Eintrags geliefert bekommen, der zuletzt angewählt war.
Das funktioniert auch, wenn man der Reihe nach (also 0->1->2) geht.
Geht man aber z.b. (3->0) dann steht bei der 0 noch die 3....
Wie bekomme ich es hin, das immer die Aktuelle Nummer zurück gegeben wird?
Oder handelt es sich gar um einen Bug?!
Vielen Dank, ManuP
Anbei ein Sample-Code
Isch hab do ä kläänes Problemsche...
Also, ich nutze JList um mir eine Liste mit verschiedenen Werten anzeigen zu lassen.
Mit getLastIndex() sollte ich die Listennummer des Eintrags geliefert bekommen, der zuletzt angewählt war.
Das funktioniert auch, wenn man der Reihe nach (also 0->1->2) geht.
Geht man aber z.b. (3->0) dann steht bei der 0 noch die 3....
Wie bekomme ich es hin, das immer die Aktuelle Nummer zurück gegeben wird?
Oder handelt es sich gar um einen Bug?!
Vielen Dank, ManuP
Anbei ein Sample-Code
Code:
/*
* Created on 30.06.2006
*/
package gui;
import java.awt.BorderLayout;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class Fehler extends JFrame
{
public static void main(String[] args)
{
Fehler f = new Fehler();
f.init();
f.setVisible(true);
}
public void init()
{
JPanel panel = new JPanel();
BorderLayout panelL = new BorderLayout();
panel.setLayout(panelL);
this.getContentPane().add(panel,BorderLayout.CENTER);
this.setSize(100,130);
final JLabel label = new JLabel("Eintrag: ");
panel.add(label,BorderLayout.NORTH);
ListModel listeModel = new DefaultComboBoxModel(
new String[] {"null","eins","zwei","drei"});
JList liste = new JList();
//panel.setViewportView(liste);
liste.setModel(listeModel);
panel.add(liste,BorderLayout.CENTER);
liste.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
System.out.println("Eintrag: "
+ e.getLastIndex());
label.setText("Eintrag: "+e.getLastIndex());
}
});
}
}