Problem beim Auslesen einer Arraylist von JComboBoxen

Ossiost

Mitglied
Hallo,
ich habe folgendes Problem. Ich habe eine Arraylist von JComboBoxen angelegt, da der Benutzer per Eingabe auswählen soll, wie viele ComboBoxen erstellt werden sollen. Jetzt weiß ich allerdings nicht weiter, wie ich die Daten, die ausgewählt wurden dann auslesen soll? Ich wollte es erst so machen, wie ich es bei den Checkboxen gemacht habe, aber da bin ich dann auch nicht weiter gekommen. Kann ich denn die ComboBoxen überhaupt so erstellen, dass sie nutzbar sind? Ich bekomme nämlich von eclipse flogende Wahrnung: "JComboBox is a raw type. References to generic type JComboBox<E> should be parameterized" leider kann ich damit nix anfangen.
Mein Ziel ist es die aus den comboBoxen ausgelesen Daten als SpaltenHeader für eine JTable zu nutzen, also quasi den enthaltenen Text.

Hier mal mein bisheriger Quelltext:
Java:
public class Fenster2 extends JFrame 
{

	private JLabel Frage1;
	private JButton Weiter2;
	private JLabel lSumme;
	private JLabel lMittelwert;
	private JLabel lStandardabweichung;
	int a = 0;
	int b = 0;
	int c = 0;
	int Reihen = 0;
	
	public Fenster2 ()
	{
		super("Fenster 2");
		int x = 5; //Übergangsvariable
		setSize(500,25*x+175);
		setVisible(true);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setLayout(null);
		
		
		List<JComboBox> comboBoxList = new ArrayList<JComboBox>();
		List<JCheckBox> checkBoxListSum = new ArrayList<JCheckBox>();
		List<JCheckBox> checkBoxListMit = new ArrayList<JCheckBox>();
		List<JCheckBox> checkBoxListSta = new ArrayList<JCheckBox>();
		
		String[] Messdaten = {"", "Druck", "Masse", "Spannung", "Stromstärke", "Temperatur", "Volumen", "Zeit"};
		
		JPanel spalte0 = new JPanel();
		spalte0.setLayout(null);
		spalte0.setBounds(50, 50, 200, 300);
		JPanel spalte1 = new JPanel();
		spalte1.setLayout(null);
		spalte1.setBounds(300, 50, 50, 300);
		JPanel spalte2 = new JPanel();
		spalte2.setLayout(null);
		spalte2.setBounds(350, 50, 50, 300);
		JPanel spalte3 = new JPanel();
		spalte3.setLayout(null);
		spalte3.setBounds(400, 50, 50, 300);
		
		Frage1 = new JLabel ("Welche Daten möchten Sie messen?");
		Frage1.setBounds(20, 10, 460, 25);
		lSumme = new JLabel ("\u2211");
		lSumme.setBounds(5, 0, 25, 25);
		lSumme.setToolTipText("Summe");
		lMittelwert = new JLabel ("\u2205");
		lMittelwert.setBounds(5, 0, 25, 25);
		lMittelwert.setToolTipText("Mittelwert");
		lStandardabweichung = new JLabel ("\u03C3");
		lStandardabweichung.setBounds(5, 0, 25, 25);
		lStandardabweichung.setToolTipText("Standardabweichung");
		Weiter2 = new JButton ("Weiter");
		Weiter2.setBounds(20, 25*(x-1)+125, 150, 25);
		
		spalte1.add(lSumme);
		spalte2.add(lMittelwert);
		spalte3.add(lStandardabweichung);
		
		for(int i = 0; i < x; i++)
		{
			JComboBox cbMessdaten = new JComboBox(Messdaten);
			cbMessdaten.setBounds(0, 25*i+25, 150, 25);
			JCheckBox sumBox = new JCheckBox();
			sumBox.setBounds(0, 25*i+25, 25, 25);
			JCheckBox mitBox = new JCheckBox();
			mitBox.setBounds(0, 25*i+25, 25, 25);
			JCheckBox staBox = new JCheckBox();
			staBox.setBounds(0, 25*i+25, 25, 25);
			
			comboBoxList.add(cbMessdaten);
			checkBoxListSum.add(sumBox);
			checkBoxListMit.add(mitBox);
			checkBoxListSta.add(staBox);
			
			spalte0.add(cbMessdaten);
			spalte1.add(sumBox);
			spalte2.add(mitBox);
			spalte3.add(staBox);
			
			
		}
		
		add(Frage1);
		add(spalte0);
		add(spalte1);
		add(spalte2);
		add(spalte3);
		add(Weiter2);
		
		Weiter2.addActionListener(new WeiterButton0 (comboBoxList));
		Weiter2.addActionListener(new WeiterButton (checkBoxListSum));
		Weiter2.addActionListener(new WeiterButton2 (checkBoxListMit));
		Weiter2.addActionListener(new WeiterButton3 (checkBoxListSta));
	}
	
	private class WeiterButton0 implements ActionListener 
	{
		List<JComboBox> comboBoxList;
	
		public WeiterButton0(List<JComboBox> list0) 
			{
			comboBoxList = list0;
			}
		
		public void actionPerformed(ActionEvent event) 
			{
			
			for(int i = 0; i < comboBoxList.size(); i++)
				{
				
				
						
						
						
				}
					
			}
				
		}
		
	
		
	private class WeiterButton implements ActionListener 
		{
		List<JCheckBox> checkBoxListSum;
		
		

		public WeiterButton(List<JCheckBox> list) 
			{
			checkBoxListSum = list;
			}
		
		public void actionPerformed(ActionEvent e) 
			{
			
			
			for(int i = 0; i < checkBoxListSum.size(); i++)
				{
				if (checkBoxListSum.get(i).isSelected()) 
					{
					System.out.println("Box "+i+ " ist ausgewählt");
					a = 1;
					} 
				else 
					{
					
					}
				
		
				}
			
			}
		
		}
	
	public class WeiterButton2 implements ActionListener 
		{
		List<JCheckBox> checkBoxListMit;

		public WeiterButton2(List<JCheckBox> list2) 
			{
			checkBoxListMit = list2;
			}
		
		public void actionPerformed(ActionEvent e) 
			{
			for(int i = 0; i < checkBoxListMit.size(); i++)
				{
				if (checkBoxListMit.get(i).isSelected()) 
					{
					System.out.println("Box "+i+ " ist ausgewählt");
					b = 1;
					} 
				else 
					{
				
					}
				
		
				}
			
			}
		
		
		}
	
	private class WeiterButton3 implements ActionListener 
		{
		List<JCheckBox> checkBoxListSta;
		
		
		public WeiterButton3(List<JCheckBox> list3) 
			{
			checkBoxListSta = list3;
			}
		
		public void actionPerformed (ActionEvent e) 
			{
			for(int i = 0; i < checkBoxListSta.size(); i++)
				{
				if (checkBoxListSta.get(i).isSelected()) 
					{
					System.out.println("Box "+i+ " ist ausgewählt");
					c = 1;
					} 
				else 
					{
				
					}
				
		
				}
			
			Reihen = a + b + c;
			
			System.out.println("Anzahl zusätzliche Reihen: " + Reihen);
			
			close2();
			Fenster3 window3 = new Fenster3 ();
			window3.setVisible(true);
			
			}
		
		}
	


public void close2() 
	{
		
	WindowEvent winClosingEvent = new WindowEvent(this,WindowEvent.WINDOW_CLOSING);
	Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
		
	}
}
Ich hoffe irgendwer kann mir weiterhelfen ich muss meine Hausarbeit leider bald abgeben.
Danke schon mal
 
Java:
for(int i = 0; i < comboBoxList.size(); i++)
   {
   JComboBox combo = comboBoxList.get(i);
   String item = (String)combo.getSelectedItem();                
   System.out.println("Combo "+i+" "+item);       
   }
 
Danke Attila, dass war genau das was ich gesucht habe 🙂
Jetzt habe ich noch das problem die Werte meiner Variablen weiter zu benutzen. Also ich muss ja die Werte für "item" in einem anderen Fenster weiterbenuten, weil dort meine Tabelle ist. Ich kriege es auch irgendwie nicht hin, dass mir für die Variable "Reihen" in Zeile 218
Code:
Reihen = a + b + c;
2 oder 3 ausgeben wird, selbst wenn ich aus verschiedenen Spalten checkboxen ausgewählt habe. Ich weis einfach nicht, wie ich die Variablen deklarieren muss, damit ich sie in allen Klassen verwenden kann, aber sie immer den Wert annehmen, den sie zu letzt hatten. Ich habe das schon oft gegooglet aber ich habe einfach nix passendes gefunden.
Wäre echt klasse, wenn mir da nochmal wer helfen könnte.
Danke
 

Zurück
Oben