# JTabbedPane bestimmten Tab ansprechen



## fetcher (30. Sep 2014)

Hallo liebes Forum,
ich habe eine Frage zu JTabbedPane.

Es geht darum von "außen" auf einen bestimmten Tab zuzugreifen und dort einen Wert setzen.
Button1 click soll im TabNr2 einen Wert setzen wie z.B. einen JList-Eintrag hinzuzufügen.

Mein bisheriger Code sieht so aus:

```
JTabbedPane tabpane = new JTabbedPane();
     
     JPanel jplInnerPanelMontag = createInnerPanelWochentage("Montag");
     tabpane.addTab("Mo", null, jplInnerPanelMontag, "Tab-Montag");
     
     JPanel jplInnerPanelDienstag = createInnerPanelWochentage("Dienstag");
     tabpane.addTab("Di", null, jplInnerPanelDienstag, "Tab-Dienstag");
     
     JPanel jplInnerPanelMittwoch = createInnerPanelWochentage("Mittwoch");
     tabpane.addTab("Mi", null, jplInnerPanelMittwoch, "Tab-Mittwoch");
     
     JPanel jplInnerPanelDonnerstag = createInnerPanelWochentage("Donnerstag");
     tabpane.addTab("Do", null, jplInnerPanelDonnerstag, "Tab-Donnerstag");
     
     JPanel jplInnerPanelFreitag = createInnerPanelWochentage("Freitag");
     tabpane.addTab("Fr", null, jplInnerPanelFreitag, "Tab-Freitag");
     
     JPanel jplInnerPanelSamstag = createInnerPanelWochentage("Samstag");
     tabpane.addTab("Sa", null, jplInnerPanelSamstag, "Tab-Samstag");
     
     JPanel jplInnerPanelSonntag = createInnerPanelWochentage("Sonntag");
     tabpane.addTab("So", null, jplInnerPanelSonntag, "Tab-Sonntag");
     
     tabpane.setBounds(20, 31, 438, 307);
     
     add(tabpane);
 
---
 
protected JPanel createInnerPanelWochentage(String text) {
System.out.println(text);
     panel = new JPanel();
     panel.setLayout(null);
 
    listFruehstueck.setModel(new AbstractListModel() {
       String[] values = new String[] {"Snack1", "Snack2", "Nudeln mit Tomatenso\u00DFe", "Fr\u00FChst\u00FCck Total"};
       public int getSize() {
         return values.length;
       }
       public Object getElementAt(int index) {
         return values[index];
       }
    });
    listFruehstueck.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    listFruehstueck.setBackground(new Color(237, 237, 237));
    listFruehstueck.setForeground(Color.BLACK);
    listFruehstueck.setBounds(30, 52, 165, 50);
    listFruehstueck.setEnabled(false);
     
    panel.add(listFruehstueck);
return panel;
}
```

Kann mir jemand helfen?
Vielen Dank im Voraus.

Gruß
fetcher


----------



## kaoZ (30. Sep 2014)

Jeder Tab kann einen Namen haben über welchen du ihn ansprechen kannst,
ansonsten kannst du über dir alle offenen ( vorhandenen ) Tabs geben lassen und oder diese über deren index aufrufen.


----------



## fetcher (30. Sep 2014)

Hallo kaoZ, 
vielen Dank für deine Antwort. Also mache ich nun statt 

```
public JPanel createInnerPanelWochentage(String text) {

}
```

einfach für jeden Wochentag ein JPanel?


```
public JPanel createInnerPanelMontag(String text) {
System.out.println(text);
}
```

Das ist natürlich eine Möglichkeit. Aber irgendwie schade das es nicht anders geht, da das Layout immer das gleiche ist, sich nur die Inhalte ändern. Wenn ich jetzt eine Änderung am layout mache, dann muss ich das bei allen 7 Tagen machen.

Gruß
fetcher


----------



## kaoZ (30. Sep 2014)

Zu deiner letzten Aussage kann ich dir nur sagen : abstrakte Basisklasse, Rest müsste ich mir mal Zuhause in Ruhe anschauen.


----------



## fetcher (30. Sep 2014)

Wie würde diese abstrakte Basisklasse aussehen? Bin noch ziemlicher Anfänger was Java betrifft. Vielen Dank für deine Hilfe.


----------



## fetcher (30. Sep 2014)

Hi ich habe mal einen Screenshot von meiner Anwendung gemacht, dann kannst du dir besser vorstellen was ich vor habe.




Gruß
fetcher


----------



## Harry Kane (30. Sep 2014)

Wenn alle JPanels etwas gemeinsam haben, ist es nicht sinnvoll, jedes JPanel in einer separaten methode zu erstellen, sondern die Arbeit eine Methode machen zu lassen, die mit den entsprechenden Parametern aufgerufen wird. Wenn bei der Erzeugung des JPanels noch weitere, etwas kompliziertere Objekte gebraucht werden, ist es im Allgemeinen sinnvoll, diese Objekte durch eine separate Klasse erstellen zu lassen.
Ich habe hier mal was zusammengeklöppelt. Für deine Befürfnisse könntest du die Factory natürlich noch erweitern, damit sie statt einer "lastList" 4 verwaltet.

```
public class TabListenerDemo {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Tab Listener");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JTabbedPane tab = new JTabbedPane();
        Factory f = new Factory();
        createPanel("Mo", null, "Tab-Montag", tab, f);
        f.getLastList().addListSelectionListener(new TabListener("Montag-Tab"));
        createPanel("Di", null, "Tab-Dienstag", tab, f);
        f.getLastList().addListSelectionListener(new TabListener("Dienstag-Tab"));
        createPanel("Mi", null, "Tab-Mittwoch", tab, f);
        f.getLastList().addListSelectionListener(new TabListener("Mittwoch-Tab"));
        frame.getContentPane().add(tab);
        frame.pack();
        frame.setVisible(true);
    }

    public static void createPanel(String tabText, Icon icon, String tip, JTabbedPane tab, Factory factory) {
        JPanel panel = new JPanel();
        panel.add(new JScrollPane(factory.createJList()));
        tab.addTab(tabText, icon, panel, tip);
    }

    static class TabListener implements ListSelectionListener {
        private String text;
        public TabListener(String text){
            this.text = text;
        }
        public void valueChanged(ListSelectionEvent e) {
            if(e.getValueIsAdjusting()) return;
            String item = "nothing";
            if(e.getSource() instanceof JList){
                JList jl = (JList)e.getSource();
                item = jl.getSelectedValue().toString();
            }
            System.out.println("LIstSelectionEvent for : " + text + ", selection: " + item);
        }

    }

    static class Factory {

        private JList lastList;

        public JList getLastList() {
            return lastList;
        }

        public JList createJList() {
            JList result = new JList();
            result.setModel(new AbstractListModel() {
                String[] values = new String[]{"Snack1", "Snack2", "Nudeln mit Tomatenso\u00DFe", "Fr\u00FChst\u00FCck Total"};

                public int getSize() {
                    return values.length;
                }

                public Object getElementAt(int index) {
                    return values[index];
                }
            });
            lastList = result;
            return result;
        }
    }
}
```


----------



## fetcher (30. Sep 2014)

Hallo Harry Kane, 
vielen Dank, dass du dir extra die Mühe gemacht hast. Ich glaube das ist genau das was ich gesucht habe. Allerdings werde ich wohl eine Weile brauchen, den Code zu verstehen.

Gruß
fetcher


----------



## fetcher (30. Sep 2014)

Eine Frage hätte ich noch. Wie kann ich mit deinem Code über einen Button außerhalb des TabbedPane zB im Tab "Dienstag" einen weiteren JList Eintrag hinzufügen?


----------



## Harry Kane (30. Sep 2014)

Ich habe noch etwas weiter gebastelt. 
Grundsätzlich ist es so, daß ein Objekt, welches eine Aufgabe ausführt (in den meisten Fällen werden das Actions oder Listener sein), imstande sein muss, an alle Daten und Objekte zu kommen, die notwendig sind, um seine Aufgabe erfüllen zu können.
Ich klatsch den Code einfach mal rein. Für weitere Erläuterungen bin ich heute zu müde.

```
public class TabListenerDemo {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Tab Listener");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JButton newEntry = new JButton("Neuer Eintrag");
        JListAddItemAction addAction = new JListAddItemAction();
        JButton removeEntry = new JButton("Eintrag entfernen");
        JListRemoveItemAction removeAction = new JListRemoveItemAction();
        newEntry.addActionListener(addAction);
        removeEntry.addActionListener(removeAction);
        JTabbedPane tab = new JTabbedPane();
        ListModelSelector lms = new ListModelSelector();
        lms.addAction(addAction);
        lms.addAction(removeAction);
        tab.addChangeListener(lms);
        Factory f = new Factory();
        createPanel("Mo", null, "Tab-Montag", tab, f);
        addAction.setJList(f.getLastList());
        removeAction.setJList(f.getLastList());
        lms.addJList(f.getLastList());
        createPanel("Di", null, "Tab-Dienstag", tab, f);
        lms.addJList(f.getLastList());
        createPanel("Mi", null, "Tab-Mittwoch", tab, f);
        lms.addJList(f.getLastList());
        JPanel buttons = new JPanel();
        buttons.add(newEntry);
        buttons.add(removeEntry);
        frame.getContentPane().add(tab);
        frame.getContentPane().add(buttons, BorderLayout.SOUTH);
        frame.pack();
        frame.setVisible(true);
    }

    public static void createPanel(String tabText, Icon icon, String tip, JTabbedPane tab, Factory factory) {
        JPanel panel = new JPanel();
        panel.add(new JScrollPane(factory.createJList()));
        factory.getLastList().addListSelectionListener(new TabListener(tabText));
        tab.addTab(tabText, icon, panel, tip);
    }
    static class ListModelSelector implements ChangeListener{
        private ArrayList<JList> lists;
        private ArrayList<JListAction> actions;
        
        public ListModelSelector(){
            this.actions = new ArrayList<JListAction>();
            this.lists = new ArrayList<JList>();
        }
        public void stateChanged(ChangeEvent ce){
            if(!(ce.getSource() instanceof JTabbedPane)) return;
            JTabbedPane tab = (JTabbedPane)ce.getSource();
            int index = tab.getSelectedIndex();
            if(index > -1 && index < lists.size()){
                for(JListAction a: actions){
                    a.setJList(lists.get(index));
                }
            }
        }
        public void addJList(JList list){
            this.lists.add(list);
        }
        public void addAction(JListAction action){
            this.actions.add(action);
        }
    }

    static class TabListener implements ListSelectionListener {
        private String text;
        public TabListener(String text){
            this.text = text;
        }
        public void valueChanged(ListSelectionEvent e) {
            if(e.getValueIsAdjusting()) return;
            Object item = "nothing";
            if(e.getSource() instanceof JList){
                JList jl = (JList)e.getSource();
                item = jl.getSelectedValue();
            }
            System.out.println("LIstSelectionEvent for : " + text + ", selection: " + item);
        }

    }
    static abstract class JListAction implements ActionListener{
        private JList list;
        public void setJList(JList jl){
            this.list = jl;
        }
        protected JList getJList(){
            return this.list;
        }
        
    }
    static class JListAddItemAction extends JListAction{
        public void actionPerformed(ActionEvent e){
            if(getJList() == null){
                return;
            }
            String result = JOptionPane.showInputDialog("Neuer Eintrag");
            System.out.println("New entry: " + result);
            ListModel model = getJList().getModel();
            if(model instanceof DefaultListModel){
                ((DefaultListModel)model).addElement(result);
            }
        }
    }

    static class JListRemoveItemAction extends JListAction{
        public void actionPerformed(ActionEvent e){
            if(getJList() == null){
                return;
            }
            ListModel model = getJList().getModel();
            if(model instanceof DefaultListModel){
                ((DefaultListModel)model).removeElement(getJList().getSelectedValue());
            }
        }
    }
    static class Factory {

        private JList lastList;

        public JList getLastList() {
            return lastList;
        }

        public JList createJList() {
            JList result = new JList();
            String[] entries = new String[]{"Snack1", "Snack2", "Nudeln mit Tomatenso\u00DFe", "Fr\u00FChst\u00FCck Total"};
            DefaultListModel model = new DefaultListModel();
            for(String s: entries){
                model.addElement(s);
            }
            result.setModel(model);
            lastList = result;
            return result;
        }
    }
}
```


----------



## fetcher (1. Okt 2014)

Moin Harry Kane, 
dein Code läuft super *freu*. Vielen Dank nochmal dafür. Kannst du mir noch sagen wie ich die Factory umzubauen habe damit ich pro Wochentag 4 Listen habe? Ich hoffe ich nerve dich nicht damit 

Gruß
fetcher


----------



## Harry Kane (1. Okt 2014)

Also diese Aufgabe bekommst du denke ich selber hin. Ich werde dir hierzu nur ein paar Tips geben: Du könntest z. B. der Factory Klasse statt einer JList Variablen ein Array von JLists spendieren, in die du 4 JList packst (für Morgens, Mittags, Zwischendurch, und Abends), und auf die JLists über eine Methode zugreifen, die einen int als zusätzlichen Parameter bekommt.


----------



## fetcher (1. Okt 2014)

Alles klar, Danke. Ich probiere es mal. Ich hoffe ich mache nichts kaputt. Kann ja auch nicht von dir erwarten, dass du mir den ganzen Code schreibst. Bin schon sehr glücklich, dass mir überhaupt jemand hilft. Wünsche dir noch einen schönen Tag. 

Gruß
fetcher


----------



## fetcher (1. Okt 2014)

Hallo nochmal . Habe es nun mit hängen und würgen geschafft deinen Code zu erweitern. Sieht zwar nicht mehr so schön aus wie bei dir, aber es läuft.


```
package Paket;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.AbstractListModel;
import javax.swing.ButtonGroup;
import javax.swing.DefaultListModel;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.ListModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class TabListenerDemo {
	 

	
	public static JRadioButton radioFruehstueck;
	public static JRadioButton radioMittag;
	public static JRadioButton radioAbendbrot;
	public static JRadioButton radioZwischenmahlzeit;
	
	public static void main(String[] args) 
	{
		
		
		JFrame frame = new JFrame("Tab Listener");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JButton newEntry = new JButton("Neuer Eintrag");
		JListAddItemAction addAction = new JListAddItemAction();
		
		JButton removeEntry = new JButton("Eintrag entfernen");
		JListRemoveItemAction removeAction = new JListRemoveItemAction();
		
		newEntry.addActionListener(addAction);
		removeEntry.addActionListener(removeAction);
		
		JTabbedPane tab = new JTabbedPane();
		ListModelSelector lms = new ListModelSelector();
		
		lms.addAction(addAction);
		lms.addAction(removeAction);
		tab.addChangeListener(lms);
		
		
		Factory f = new Factory();
		
		createPanel("Mo", null, "Tab-Montag", tab, f);
		addAction.setJList(f.getFruehstueck(), "Fruehstueck");
		addAction.setJList(f.getMittag(), "Mittag");
		addAction.setJList(f.getAbendbrot(), "Abendbrot");
		addAction.setJList(f.getZwischenmahlzeit(), "Zwischenmahlzeit");
		
		//removeAction.setJList(f.getFruehstueck());
		
		lms.addJList(f.getFruehstueck(),1);
		lms.addJList(f.getMittag(),2);
		lms.addJList(f.getAbendbrot(),3);
		lms.addJList(f.getZwischenmahlzeit(),4);
		
		createPanel("Di", null, "Tab-Dienstag", tab, f);
		addAction.setJList(f.getFruehstueck(), "Fruehstueck");
		addAction.setJList(f.getMittag(), "Mittag");
		addAction.setJList(f.getAbendbrot(), "Abendbrot");
		addAction.setJList(f.getZwischenmahlzeit(), "Zwischenmahlzeit");
		
		lms.addJList(f.getFruehstueck(),1);
		lms.addJList(f.getMittag(),2);
		lms.addJList(f.getAbendbrot(),3);
		lms.addJList(f.getZwischenmahlzeit(),4);
		
		createPanel("Mi", null, "Tab-Mittwoch", tab, f);
		addAction.setJList(f.getFruehstueck(), "Fruehstueck");
		addAction.setJList(f.getMittag(), "Mittag");
		addAction.setJList(f.getAbendbrot(), "Abendbrot");
		addAction.setJList(f.getZwischenmahlzeit(), "Zwischenmahlzeit");
		
		lms.addJList(f.getFruehstueck(),1);
		lms.addJList(f.getMittag(),2);
		lms.addJList(f.getAbendbrot(),3);
		lms.addJList(f.getZwischenmahlzeit(),4);
		
		createPanel("Do", null, "Tab-Donnerstag", tab, f);
		addAction.setJList(f.getFruehstueck(), "Fruehstueck");
		addAction.setJList(f.getMittag(), "Mittag");
		addAction.setJList(f.getAbendbrot(), "Abendbrot");
		addAction.setJList(f.getZwischenmahlzeit(), "Zwischenmahlzeit");
		
		lms.addJList(f.getFruehstueck(),1);
		lms.addJList(f.getMittag(),2);
		lms.addJList(f.getAbendbrot(),3);
		lms.addJList(f.getZwischenmahlzeit(),4);
		
		JPanel buttons = new JPanel();
		
		buttons.add(newEntry);
		buttons.add(removeEntry);
		
		/* start radio */
		radioFruehstueck = new JRadioButton ("Frühstück", true);
		radioMittag = new JRadioButton ("Mittag", false);
		radioAbendbrot = new JRadioButton ("Abendbrot", false);
		radioZwischenmahlzeit = new JRadioButton ("Zwischenmahlzeit", false);
		
		JPanel radios = new JPanel();
		
		ButtonGroup bgMahlzeiten = new ButtonGroup();
		bgMahlzeiten.add(radioFruehstueck);
		bgMahlzeiten.add(radioMittag);
		bgMahlzeiten.add(radioAbendbrot);
		bgMahlzeiten.add(radioZwischenmahlzeit);
		
		radios.add(radioFruehstueck);
		radios.add(radioMittag);
		radios.add(radioAbendbrot);
		radios.add(radioZwischenmahlzeit);
		
	
		
		/* ende radio */
		
		
		frame.getContentPane().add(tab);
		frame.getContentPane().add(buttons, BorderLayout.SOUTH);
		frame.getContentPane().add(radios, BorderLayout.EAST);
		
		
		
		frame.pack();
		frame.setSize(1000, 360);
		frame.setVisible(true);
	}
 
	public static void createPanel(String tabText, Icon icon, String tip, JTabbedPane tab, Factory factory) 
	{
		JPanel panel = new JPanel();
		
		
		panel.add(new JScrollPane(factory.createJList(1)));
		panel.add(new JScrollPane(factory.createJList(2)));
		panel.add(new JScrollPane(factory.createJList(3)));
		panel.add(new JScrollPane(factory.createJList(4)));
		
		
		
		
		factory.getFruehstueck().addListSelectionListener(new TabListener(tabText));
		factory.getMittag().addListSelectionListener(new TabListener(tabText));
		factory.getAbendbrot().addListSelectionListener(new TabListener(tabText));
		factory.getZwischenmahlzeit().addListSelectionListener(new TabListener(tabText));
		
		tab.addTab(tabText, icon, panel, tip);
	}
	
	static class ListModelSelector implements ChangeListener
	{
		
		private ArrayList<JList> lists;
		private ArrayList<JList> listsFruehstueck, listsMittag, listsAbendbrot, listsZwischenmahlzeit;
		private ArrayList<JListAction> actions;
	 
		public ListModelSelector()
		{
			this.actions = new ArrayList<JListAction>();
			this.lists = new ArrayList<JList>();
			
			this.listsFruehstueck = new ArrayList<JList>();
			this.listsMittag = new ArrayList<JList>();
			this.listsAbendbrot = new ArrayList<JList>();
			this.listsZwischenmahlzeit = new ArrayList<JList>();
		}
		
		public void stateChanged(ChangeEvent ce){
			if(!(ce.getSource() instanceof JTabbedPane)) return;
			
			JTabbedPane tab = (JTabbedPane)ce.getSource();
			int index = tab.getSelectedIndex();
			
			if(index > -1 && index < lists.size())
			{
				for(JListAction a: actions)
				{
					a.setJList(listsFruehstueck.get(index), "Fruehstueck");
					a.setJList(listsMittag.get(index), "Mittag");
					a.setJList(listsAbendbrot.get(index), "Abendbrot");
					a.setJList(listsZwischenmahlzeit.get(index), "Zwischenmahlzeit");
				}
			}
			
		}
		
		public void addJList(JList list, int art)
		{
			System.out.println("art"+art);
			
			
			if(art==1)
			{
				
				this.listsFruehstueck.add(list);
				
			}else if (art==2) {
				this.listsMittag.add(list);
			}else if (art==3) {
				this.listsAbendbrot.add(list);
			}else if (art==4) {
				
				this.listsZwischenmahlzeit.add(list);
			}
			
			this.lists.add(list);
			
		}
		
		public void addAction(JListAction action)
		{
			this.actions.add(action);
			System.out.println("123");
		}
	}
 
	static class TabListener implements ListSelectionListener 
	{
		private String text;
		
		public TabListener(String text)
		{
			this.text = text;
		}
		
		public void valueChanged(ListSelectionEvent e) 
		{
			if(e.getValueIsAdjusting()) return;
			Object item = "nothing";
			
			if(e.getSource() instanceof JList)
			{
				JList jl = (JList)e.getSource();
				item = jl.getSelectedValue();
			}
			
			System.out.println("LIstSelectionEvent for : " + text + ", selection: " + item);
		}
		 
	}
	
	static abstract class JListAction implements ActionListener
	{
		public JList list, listFruehstueck, listMittag, listAbendbrot, listZwischenmahlzeit;
		
		public void setJList(JList jl, String Name)
		{
			if(Name=="Fruehstueck")
			{
				this.listFruehstueck = jl;
				
			}else if (Name=="Mittag") {
				this.listMittag = jl;
				
			}else if (Name=="Abendbrot") {
				this.listAbendbrot = jl;
				
			}else if (Name=="Zwischenmahlzeit") {
				this.listZwischenmahlzeit = jl;
			}

		}
		
		protected JList getJList(int Art)
		{
			if(Art==1)
			{
				return this.listFruehstueck;
			}else if (Art==2) {
				return this.listMittag;
			}else if (Art==3) {
				return this.listAbendbrot;
				
			}else {
				return this.listZwischenmahlzeit;	
			}
			
			
			//return this.list;
		}
	 
	}
	
	static class JListAddItemAction extends JListAction
	{
		private ListModel model;
		
		public void actionPerformed(ActionEvent e)
		{
			if(getJList(0) == null)
			{
				return;
			}
			
			
			String result = JOptionPane.showInputDialog("Neuer Eintrag");
			System.out.println("New entry: " + result);
			
			model = getJList(4).getModel();
			
			
			if(radioFruehstueck.isSelected())
			{
				
				model = getJList(1).getModel();
				System.out.println("Fruehstueck");
				
			}
			
			if(radioMittag.isSelected())
			{
				model = getJList(2).getModel();
				System.out.println("Mittag");
			}
			
			if(radioAbendbrot.isSelected())
			{
				model = getJList(3).getModel();
				System.out.println("Abendbrot");
			}
			
			if(radioZwischenmahlzeit.isSelected())
			{
				model = getJList(4).getModel();
				System.out.println("Zwischenmahlzeit");
			}
			
			if(model instanceof DefaultListModel)
			{
				((DefaultListModel)model).addElement(result);
			}
		}
	}
 
	static class JListRemoveItemAction extends JListAction
	{
		public void actionPerformed(ActionEvent e)
		{
			if(getJList(2) == null)
			{
				return;
			}
			
			ListModel model = getJList(2).getModel();
			
			if(model instanceof DefaultListModel)
			{
				((DefaultListModel)model).removeElement(getJList(2).getSelectedValue());
			}
		}
	}
	
	static class Factory 
	{
	 
		private JList lastList, listFruehstueck, listMittag, listAbendbrot, listZwischenmahlzeit;
		 
		public JList getLastList() 
		{
			return lastList;
		}
		
		public JList getFruehstueck() 
		{
			return listFruehstueck;
		}
		
		public JList getMittag() 
		{
			return listMittag;
		}
		
		public JList getAbendbrot() 
		{
			return listAbendbrot;
		}
		
		public JList getZwischenmahlzeit() 
		{
			return listZwischenmahlzeit;
		}
		 
		public JList createJList(int art) 
		{
			JList result = new JList();
			
			if(art==1)
			{
				String[] entries = new String[]{"Frühstück", "Snack2222", "Nudeln mit Tomatenso\u00DFe", "Fr\u00FChst\u00FCck Total"};
				DefaultListModel model = new DefaultListModel();
				
				for(String s: entries)
				{
					model.addElement(s);
				}
				
				result.setModel(model);
				listFruehstueck = result;
			}else if (art==2) 
			{
				String[] entries = new String[]{"Mittag", "Snack23333", "Nudeln mit Tomatenso\u00DFe", "Fr\u00FChst\u00FCck Total"};
				DefaultListModel model = new DefaultListModel();
				
				for(String s: entries)
				{
					model.addElement(s);
				}
				
				result.setModel(model);
				listMittag = result;
			}else if (art==3) 
			{
				String[] entries = new String[]{"Abendbrot", "Snack244444", "Nudeln mit Tomatenso\u00DFe", "Fr\u00FChst\u00FCck Total"};
				DefaultListModel model = new DefaultListModel();
				
				for(String s: entries)
				{
					model.addElement(s);
				}
				
				result.setModel(model);
				listAbendbrot = result;
			}else if (art==4)
			{
				String[] entries = new String[]{"Zwischenmahlzeit", "Snack25555", "Nudeln mit Tomatenso\u00DFe", "Fr\u00FChst\u00FCck Total"};
				DefaultListModel model = new DefaultListModel();
				
				for(String s: entries)
				{
					model.addElement(s);
				}
				
				result.setModel(model);
				listZwischenmahlzeit = result;
			}

			return result;
		}
	}
}
```

Vielen Dank nochmal.

Gruß
fetcher


----------

