K
kceenav
Gast
Schönen Tag allerseits -
in meinem bereits etwas umfangreicheren Programm verwende ich eine JList zur Anzeige aller Monatsnamen. Der Benutzer soll daraus zur Bestimmung eines Kalenderdatums eine Auswahl treffen. Als Listener habe ich lediglich den üblichen ListSelectionListener registriert - sonst nichts.
Und nun das Problem:
Wenn das JList-Element den Focus hat, erfolgt bei Betätigung der Leertaste ein Inkrementieren des selektierten Monats ... Wobei lustigerweise 4 Monate stets übersprungen werden.
Noch zur näheren Erläuterung: Die Einträge sind in 6 Spalten auf 2 Zeilen verteilt. Es ist natürlich nur Single-Selection vorgesehen. Übersprungen werden die Monate in den ersten beiden Spalten (links).
Dass die JList bereits von Hause aus - ohne weiteren Codier-Aufwand - auf bestimmte Tastaturbefehle reagiert, ist wohl normal. Z.B. kann man mit den Pfeiltasten die Auswahl wechseln.
Die Reaktion auf die Leertaste jedoch scheint mir nicht erklärlich. Ich habe schon ein wenig 'rumprobiert mit einer "jungfräulichen" JList in einem winzigen Test-Fenster - und da bewirkt die Leertaste nichts. Was ja auch sinnvoll ist ...
Hier noch die paar Anweisungen, mit denen die JList festgelegt wird:
jlMonate.setLayoutOrientation(JList.HORIZONTAL_WRAP);
jlMonate.setVisibleRowCount(2);
jlMonate.setFont(new Font("SansSerif",Font.ITALIC,12));
jlMonate.setBorder(BorderFactory.createLineBorder(Color.BLACK));
jlMonate.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jlMonate.setSelectedIndex(monatSelektiert);
jlMonate.addListSelectionListener(monatsListener);
Wäre toll, wenn jemand eine Idee beisteuern könnte, wo ich im Programm einen Fehler (?) eingebaut habe. Dass es ein Fehler sein muss, scheint mir offensichtlich, da sich ja andere JLists nicht so verhalten ...
Danke im voraus!
Gruß,
kceenav
in meinem bereits etwas umfangreicheren Programm verwende ich eine JList zur Anzeige aller Monatsnamen. Der Benutzer soll daraus zur Bestimmung eines Kalenderdatums eine Auswahl treffen. Als Listener habe ich lediglich den üblichen ListSelectionListener registriert - sonst nichts.
Und nun das Problem:
Wenn das JList-Element den Focus hat, erfolgt bei Betätigung der Leertaste ein Inkrementieren des selektierten Monats ... Wobei lustigerweise 4 Monate stets übersprungen werden.
Noch zur näheren Erläuterung: Die Einträge sind in 6 Spalten auf 2 Zeilen verteilt. Es ist natürlich nur Single-Selection vorgesehen. Übersprungen werden die Monate in den ersten beiden Spalten (links).
Dass die JList bereits von Hause aus - ohne weiteren Codier-Aufwand - auf bestimmte Tastaturbefehle reagiert, ist wohl normal. Z.B. kann man mit den Pfeiltasten die Auswahl wechseln.
Die Reaktion auf die Leertaste jedoch scheint mir nicht erklärlich. Ich habe schon ein wenig 'rumprobiert mit einer "jungfräulichen" JList in einem winzigen Test-Fenster - und da bewirkt die Leertaste nichts. Was ja auch sinnvoll ist ...
Hier noch die paar Anweisungen, mit denen die JList festgelegt wird:
jlMonate.setLayoutOrientation(JList.HORIZONTAL_WRAP);
jlMonate.setVisibleRowCount(2);
jlMonate.setFont(new Font("SansSerif",Font.ITALIC,12));
jlMonate.setBorder(BorderFactory.createLineBorder(Color.BLACK));
jlMonate.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jlMonate.setSelectedIndex(monatSelektiert);
jlMonate.addListSelectionListener(monatsListener);
Wäre toll, wenn jemand eine Idee beisteuern könnte, wo ich im Programm einen Fehler (?) eingebaut habe. Dass es ein Fehler sein muss, scheint mir offensichtlich, da sich ja andere JLists nicht so verhalten ...
Danke im voraus!
Gruß,
kceenav