# Kriterium für eine JList neu definieren



## Alex_winf01 (19. Dez 2007)

Ich habe folgende Liste vorliegen:


```
/*-------------------------------------------------------------------*/
		/**J L i s t */
		/*-------------------------------------------------------------------*/
		String[] liste_array = {"nachname , ", "vorname,", "fall_nummer"};
		liste = new JList(defaultlistmodel);
		liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		liste.setSelectedIndex(0);
		liste.setSize(50,50);
		liste.setSelectionMode(0);
		scrollPane = new JScrollPane(liste);
```

Diese Liste fülle ich mit Werten aus der Datenbank:


```
/*-------------------------------------------------------------------*/
		/**JList mit Werten aus der Datenbank auslesen*/
		/*-------------------------------------------------------------------*/
		try
	 	{
	 		// Anzeige neuer Datensätze in der Liste
	 		String anzeige_JList;
	 		for (;Login.result.next();defaultlistmodel.addElement(anzeige_JList))
	 		{
	 			anzeige_JList = Login.result.getString("fall_nummer");
	 		}
	 		
	 		pack();
	 		
                 } 
	 	catch(SQLException e)
	 	{
	 		JOptionPane.showMessageDialog(null, " Fehler beim Datenbankabbau" + e,
							"DB-Meldung", JOptionPane.ERROR_MESSAGE);
	 	}
```

Nun habe ich noch eine Schaltfläche 
	
	
	
	





```
JButton liste_sortieren = new JButton("neues Kriterium definieren");
```

An dieser Schaltfläche hängt folgender ActionListener:


```
class listeSortierenListener implements ActionListener
		{
			public void actionPerformed(ActionEvent e)
			{
				String text = "Welches Kriterium soll in der Liste angezeigt werden?"; 
				stringSort = ( String ) JOptionPane.showInputDialog(null, "Kriterium für Liste", "Dialog", JOptionPane.QUESTION_MESSAGE, new ImageIcon("img/middle.gif"), sortierung, sortierung[0]);
				if (stringSort == null) return;
			}
		}
```


```
public static String[] sortierung = {"Fall-Nummer", "Name", "Status"};
```

Die Schaltfläche soll jetzt folgendes Bewirken: Der Anwender wählt "Name" aus und die Liste soll dann wie folgt aussehen:


```
/*-------------------------------------------------------------------*/
		/**JList mit Werten aus der Datenbank auslesen*/
		/*-------------------------------------------------------------------*/
		try
	 	{
	 		// Anzeige neuer Datensätze in der Liste
	 		String anzeige_JList;
	 		for (;Login.result.next();defaultlistmodel.addElement(anzeige_JList))
	 		{
	 			anzeige_JList = Login.result.getString("name");
	 		}
	 		
	 		pack();
	 		
                 } 
	 	catch(SQLException e)
	 	{
	 		JOptionPane.showMessageDialog(null, " Fehler beim Datenbankabbau" + e,
							"DB-Meldung", JOptionPane.ERROR_MESSAGE);
	 	}
```

Wie kann ich das ursprüngliche überschreiben, dass das neue Kriterium des Anwenders angezeigt wird?[/code]


----------



## Alex_winf01 (19. Dez 2007)

Hat keiner eine Idee?


----------



## Alex_winf01 (20. Dez 2007)

Also mit 
	
	
	
	





```
liste.revalidate();
```
 kann ich die Liste "leeren". Aber mir werden dann nicht die neuen Werte aus der DB angezeigt. Kann mir keiner helfen?


----------



## Alex_winf01 (21. Dez 2007)

Habs jetzt über eine Variable gelöst, die sich "merkt", welches Kriterium festgelegt wurde.


----------

