JList

lizzi1

Grünschnabel
Hi

ich bin ein java/swing-anfänger und hab folgendes problemchen:

ich möchte ein programm enwickeln mit einem hauptfenster. darauf sind in einer jlist 5 menupunkte zur auswahl. unten hat es einen ok-button. je nachdem, welcher der 5 punkte markiert ist, soll beim klicken auf ok immer ein anderes fenster geöffnet werden. leider krieg ich das einfach nicht hin, kann mir bitte jemand weiterhelfen? ich habe was vom listselectionlistener gelesen, aber weiss nicht genau, ob ich den hier brauche und wie man in anwendet.

oder gibts evtl. für das hauptfenster etwas besseres als eine jlist?

danke für jede hilfe
lizzi
 
Hallo,

um beim Klicken auf den Button zu ermitteln, welcher Eintrag in der JList ausgewählt ist, kannst du die Methoden getSelectedIndex() oder getSelectedValue() benutzen.
 
Eine alternative zu der JList waere z.b. JRadioButtons, wenn es immer nur eine moegliche auswahl geben soll...
 
hier ist ein auszug aus meinem code

public void setHauptFrame()
{
this.getFrame();
String[] list_items = {"1. DVD erfassen", "2. DVD mutieren",
"3. DVD löschen", "4. Liste anzeigen"};
JList liste = new JList();
liste.setListData(list_items);
liste.setSelectionMode(SINGLE_SELECTION);
myStartFrame.getContentPane().add(liste);
int index = liste.getSelectedIndex();
JButton OKButton = new JButton("OK");
OKButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (index == 0)
{
setErfassenFrame();
}

}



bei if (index.... kommt nun eine fm, weil die variable nicht final sei, wie kann ich denn den index sonst abfragen?

danke
 
Hallo,

versuchs mal so:
Code:
		String[] list_items = {"1. DVD erfassen", "2. DVD mutieren", "3. DVD löschen", "4. Liste anzeigen"};
  		final JList liste = new JList();
  		liste.setListData(list_items);
  		liste.setSelectionMode(SINGLE_SELECTION);
  		getContentPane().add(liste);
  		JButton OKButton = new JButton("OK");
  		OKButton.addActionListener(new ActionListener()
  				{
 		 		public void actionPerformed(ActionEvent e)
  					{
 		 			if (liste.getSelectedIndex() == 0)
 						{
 		 	 		setErfassenFrame();
 						}
  
  					}
 				});
Die Liste kannst du final machen, da diese sich ja nicht mehr ändert.

PS: Wenn du Source-Code postest, dann benutzte doch den Code-Tag, das macht den Code übersichtlicher.
 
vielen dank, werde es heute abend ausprobieren. danke auch für den tip wegen dem code, werde nächstest mal darauf achten :)
 
Zurück