JComboBox, LinkedHashMap, Items tauschen

Wie holst du denn die Werte aus der Datenbank und wo genau wird dann die Veränderung durchgeführt?

Zeig mir mal wie du die aus der Datenbank holst mein Gedanke ist halt, dass du des ResultSet oder wie auch immer du des machst zu überprüfen ob des empty ist und falls ja soll die Standardausgabe erfolgen du kannst ja mal die db Struktur posten dann kann ich was basteln.

Grüße
youza
 
Hi Youza...freut mich sehr, dass Du Dich meiner noch annimmst :)

Vielen Dank für Dein Angebot, etwas zu basteln.
Hier nun die relevanten Dinge:

Die DB (eine integrierte H2) - Struktur (stark verkürzt - ist nur das relevante drin):
Code:
create table kommMasse(
kommId 			int(10) primary key NOT NULL,
uLinks			VARCHAR_IGNORECASE(50) DEFAULT NULL,
uRechts			VARCHAR_IGNORECASE(50) DEFAULT NULL,
uOben			VARCHAR_IGNORECASE(50) DEFAULT NULL,
uUnten			VARCHAR_IGNORECASE(50) DEFAULT NULL,
luftLinks		int(20) DEFAULT NULL,
luftRechts		int(20) DEFAULT NULL,
luftOben		int(20) DEFAULT NULL,
luftUnten		int(20) DEFAULT NULL
);

INSERT INTO `kommmasse` (`kommId`, 
				  `uLinks`, 
				  `uRechts`, 
				  `uOben`, 
				  `uUnten`, 
				  `luftLinks`, 
				  `luftRechts`, 
				  `luftOben`,
				  `luftUnten`) VALUES
(1, '40/20/40/2', '20/20/20/2', '30/20/30/2', '20/20/20/2', 30, 8, 20, 12);

Jene Klasse, mit der ich die obige DB abfrage:
Java:
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import at.p4glass.db.DBConnect;
import at.p4glass.db.DBData;
import at.p4glass.hilfsklassen.ActiveId;

public class ShowKommmasse {
	
	private int kommId = 0;
	private String uLinks = null;
	private String uRechts = null;
	private String uOben = null;
	private String uUnten = null;
	private int luftLinks = 0;
	private int luftRechts = 0;
	private int luftOben = 0;
	private int luftUnten = 0;
	
	public ShowKommmasse() {
		
		try {
			DBConnect.connect();
			Statement stmt = DBData.connection.createStatement();

			// aktuelle id 
			ActiveId ai = new ActiveId();
			String sql = "SELECT * FROM KOMMMASSE Where KOMMID = " + ai.aktuelleId();
			ResultSet rs = stmt.executeQuery(sql);

			while (rs.next()) {
				kommId = rs.getInt("kommId");
				uLinks = rs.getString("uLinks");
				uRechts = rs.getString("uRechts");
				uOben = rs.getString("uOben");
				uUnten = rs.getString("uUnten");
				luftLinks = rs.getInt("luftLinks");
				luftRechts = rs.getInt("luftRechts");
				luftOben = rs.getInt("luftOben");
				luftUnten = rs.getInt("luftUnten");
			}			
		} catch (SQLException e1) {
			e1.printStackTrace();
		}		
	}
	
	public int getKommId() {
		return kommId;		
	}
	public String getULinks() {
		return uLinks;		
	}
	public String getURechts() {
		return uRechts;		
	}
	public String getUOben() {
		return uOben;		
	}
	public String getUUnten() {
		return uUnten;		
	}
	public int getLuftLinks() {
		return luftLinks;		
	}
	public int getLuftRechts() {
		return luftRechts;		
	}
	public int getLuftOben() {
		return luftOben;		
	}
	public int getLuftUnten() {
		return luftUnten;		
	}
}

UProfil.java(DB - Werte holen und die ComboBoxen füllen):
Java:
public void showAnlTyp() {

	ShowKommmasse skm = new ShowKommmasse();
	uLinks = skm.getULinks();
	uRechts = skm.getURechts();
	uOben = skm.getUOben();
	uUnten = skm.getUUnten();
	luftLinks = skm.getLuftLinks();
	luftRechts = skm.getLuftRechts();
	luftOben = skm.getLuftOben();
	luftUnten = skm.getLuftUnten();

	// ComboBoxen aufrufen
	aLinks(uLinks, luftLinks);
}

public void aLinks(String schenkel, int einstand) {	
        
		cbSchenkelLinksA = new JComboBox<UProfilSchenkel>();
		cbEinstandLinksA = new JComboBox<String>();
		
		System.out.println("aLinks schenkel:" + schenkel); 
		System.out.println("aLinks einstand:" + einstand);
		
		String[] e20 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14" };
		String[] e30 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
				"24" };
		String[] e40 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
				"24", "25", "26", "27", "28", "29", "30", "31", "32", "33",
				"34" };
		
		UProfilSchenkel s20 = new UProfilSchenkel();
		s20.setKey("20/20/20/2");
		s20.setValues(e20);
 
        UProfilSchenkel s30 = new UProfilSchenkel();
        s30.setKey("30/20/30/2");
        s30.setValues(e30);
 
        UProfilSchenkel s40 = new UProfilSchenkel();
        s40.setKey("40/20/40/2");
        s40.setValues(e40);
        
		// Werte aus DB werden verknuepft
		if (schenkel.equals("20/20/20/2") && einstand != 0) {
			cbSchenkelLinksA.addItem(s20);
			cbSchenkelLinksA.addItem(s30);
			cbSchenkelLinksA.addItem(s40);
			s20.setActualValue(p.intToString(einstand));
		} 
		else if (schenkel.equals("30/20/30/2") && einstand != 0) {
			cbSchenkelLinksA.addItem(s30);
			cbSchenkelLinksA.addItem(s20);
			cbSchenkelLinksA.addItem(s40);
			s30.setActualValue(p.intToString(einstand));
		} 
		else if (schenkel.equals("40/20/40/2") && einstand != 0) {
			cbSchenkelLinksA.addItem(s40);
			cbSchenkelLinksA.addItem(s20);
			cbSchenkelLinksA.addItem(s30);
			s40.setActualValue(p.intToString(einstand));
		} 
		else {
			// Wenn keine Werte in DB: Standardausgabe
			cbSchenkelLinksA.addItem(s20);
			cbSchenkelLinksA.addItem(s30);
			cbSchenkelLinksA.addItem(s40);
		}
        
        changeJcSchenkelTyp();
        
        cbSchenkelLinksA.addItemListener(this);
        cbEinstandLinksA.addItemListener(this);
    }
 
	@Override
    public void itemStateChanged(ItemEvent event) {
		// Schenkellaenge zB 40/20/40/2
		System.out.println("itemStateChanged aktSchenkel vor if: " + aktSchenkel);
        if(aktSchenkel==null || !(cbSchenkelLinksA.getSelectedItem().equals(aktSchenkel)))        {
            changeJcSchenkelTyp();
            System.out.println("itemStateChanged aktSchenkel nach if: " + aktSchenkel);
        }
		// Einstand in diesen zB 30
		if ((event.getStateChange() == ItemEvent.SELECTED)) {
			einstandLinks = cbEinstandLinksA.getSelectedItem().toString();
			System.out.println("itemStateChanged einstandLinks: " + einstandLinks);			
		}
        
    }
    private void changeJcSchenkelTyp(){		
        aktSchenkel = (UProfilSchenkel) cbSchenkelLinksA.getSelectedItem();        
        System.out.println("Aktuelle Schenkellaenge: " + aktSchenkel);
        
        cbEinstandLinksA.removeAllItems();
        
        String temp[] = aktSchenkel.getValues();
        int active = 0;
        for (int i = 0; i < temp.length; i++) {
            if(temp[i].equals(aktSchenkel.getActualValue()))
                active = i;
            cbEinstandLinksA.addItem(temp[i]);
        }
        cbEinstandLinksA.setSelectedIndex(active);
        System.out.println("Aktueller Einstand[]: " + active);
        System.out.println("--------------------------------------------------------------");
    }

Nun die Schenkel.java - habe ich umbenennt in UProfilSchenkel.java:
Java:
public class UProfilSchenkel {

	private String key;
    private String values[];
    private String actualValue;
    public String getKey() {
        return key;
    }
    public void setKey(String key) {
        this.key = key;
    }
    public String[] getValues() {
        return values;
    }
    public void setValues(String[] values) {
        this.values = values;
    }
    
    public String getActualValue() {
        return actualValue;
    }
    public void setActualValue(String actualValue) {
        this.actualValue = actualValue;
    }
    @Override
    public String toString(){
        return key;
    }
}

Das Ganze ist eine Applikation mit einem Cardlayout.
Bei Start der Applikation werde alle Cards initialisiert.
Wenn dann zur betreffenden Card mit den ComboBoxen navigiert wird,
hole ich bei Betätigung eines Buttons die Daten mit dem Methodenaufruf "showAnlTyp()" aus der DB.
Diese sind dann verfügbar.

In diesem Fall habe ich zB zum einen
die Variable String uLinks mit dem Wert "40/20/40/2" und
int luftLinks mit dem Wert 30.

Mit Deiner Hilfe kann ich diese ja auch ausgeben, aber leider nur auf der Konsole, die verd...GUI zeigt diese nicht an.
Ich bekomme immer nur die Standard - Combos angezeigt.

Wie ich ergoogelt habe, benötigt man zum Löschen der Items ein ComboBoxModel, da das Interface JComboBox dies nicht vorsieht.
Leider bin ich mit meinen Versuchen immer wieder gescheitert.

Hoffe, dass nix fehlt :)

SoLong derweil
quidnovi
 
Sooo....
Dann mal los ist jetzt etwas mehr geworden allerdings weiß ich noch nicht mal sicher ob ich da ganz Richtig liege :)

Ich hänge die des Projekt auch als Eclipse Projekt an dann gehts schneller.

Trotzdem hier der Code:

Package Nr 1:
com.youza.dto:
Klasse Nr 1:
Kommasse
Java:
package com.youza.dto;

public class Kommasse {
	private int kommid;
	private String ulinks;
	private String urechts;
	private String uoben;
	private String uunten;
	private int luftLinks;
	private int luftRechts;
	private int luftOben;
	private int luftUnten;
	public int getKommid() {
		return kommid;
	}
	public void setKommid(int kommid) {
		this.kommid = kommid;
	}
	public String getUlinks() {
		return ulinks;
	}
	public void setUlinks(String ulinks) {
		this.ulinks = ulinks;
	}
	public String getUrechts() {
		return urechts;
	}
	public void setUrechts(String urechts) {
		this.urechts = urechts;
	}
	public String getUoben() {
		return uoben;
	}
	public void setUoben(String uoben) {
		this.uoben = uoben;
	}
	public String getUunten() {
		return uunten;
	}
	public void setUunten(String uunten) {
		this.uunten = uunten;
	}
	public int getLuftLinks() {
		return luftLinks;
	}
	public void setLuftLinks(int luftLinks) {
		this.luftLinks = luftLinks;
	}
	public int getLuftRechts() {
		return luftRechts;
	}
	public void setLuftRechts(int luftRechts) {
		this.luftRechts = luftRechts;
	}
	public int getLuftOben() {
		return luftOben;
	}
	public void setLuftOben(int luftOben) {
		this.luftOben = luftOben;
	}
	public int getLuftUnten() {
		return luftUnten;
	}
	public void setLuftUnten(int luftUnten) {
		this.luftUnten = luftUnten;
	}
	@Override
	public String toString(){
		return String.valueOf(kommid);
	}
}

Klasse 2:
Schenkel
Java:
package com.youza.dto;
public class Schenkel {
 
    private String key;
    private String values[];
    private int actualValue;
    public String getKey() {
        return key;
    }
    public void setKey(String key) {
        this.key = key;
    }
    public String[] getValues() {
        return values;
    }
    public void setValues(String[] values) {
        this.values = values;
    }
    
    public int getActualValue() {
        return actualValue;
    }
    public void setActualValue(int actualValue) {
        this.actualValue = actualValue;
    }
    @Override
    public String toString(){
        return key;
    }
}

Package Nr. 2:
com.youza.persitence
Klasse 1:
ConnectH2DB
Java:
/*
 * ConnectH2DB.java
 */
package com.youza.persitence;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * @author www.javaworkspace.com
 * 
 */
public class ConnectH2DB {
	private Connection conn;

	public Connection getConn() {
		return conn;
	}

	public void setConn(Connection conn) {
		this.conn = conn;
	}

	public ConnectH2DB() {
		try {
			Class.forName("org.h2.Driver");
			conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test", "sa", "");
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

Klasse 2:
KommasseManager
Java:
package com.youza.persitence;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.youza.dto.Kommasse;

public class KommasseManager {
	ConnectH2DB Connector = new ConnectH2DB();

	public Kommasse getKommasse(int id) {
		Kommasse kommasse = new Kommasse();
		try {
			Statement stmt = Connector.getConn().createStatement();

			String sql = "SELECT * FROM KOMMMASSE Where KOMMID = " + id;
			ResultSet rs = stmt.executeQuery(sql);

			while (rs.next()) {
				kommasse.setKommid(rs.getInt("kommId"));
				kommasse.setUlinks(rs.getString("uLinks"));
				kommasse.setUrechts(rs.getString("uRechts"));
				kommasse.setUoben(rs.getString("uOben"));
				kommasse.setUunten(rs.getString("uUnten"));
				kommasse.setLuftLinks(rs.getInt("luftLinks"));
				kommasse.setLuftRechts(rs.getInt("luftRechts"));
				kommasse.setLuftOben(rs.getInt("luftOben"));
				kommasse.setLuftUnten(rs.getInt("luftUnten"));
			}
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
		return kommasse;

	}

	public boolean updateKommasse(Kommasse kommasse) {
		try {

			String sql = "UPDATE kommMasse SET uLinks = ?, uRechts = ?, uOben = ?, uUnten = ?, luftLinks = ?, luftRechts = ?, luftOben = ?, luftUnten = ? WHERE kommId = ?";
			PreparedStatement updateLieferant = Connector.getConn()
					.prepareStatement(sql);
			updateLieferant.setString(1, kommasse.getUlinks());
			updateLieferant.setString(2, kommasse.getUrechts());
			updateLieferant.setString(3, kommasse.getUoben());
			updateLieferant.setString(4, kommasse.getUunten());
			updateLieferant.setInt(5, kommasse.getLuftLinks());
			updateLieferant.setInt(6, kommasse.getLuftRechts());
			updateLieferant.setInt(7, kommasse.getLuftOben());
			updateLieferant.setInt(8, kommasse.getLuftUnten());
			updateLieferant.setInt(9, kommasse.getKommid());
			updateLieferant.executeUpdate();

		} catch (SQLException e1) {
			e1.printStackTrace();
			return false;
		}
		return true;

	}

}

Package Nr 3:
com.youza.logic
Klasse Nr 1:
MainGui
Java:
package com.youza.logic;

import com.youza.dto.Kommasse;
import com.youza.dto.Schenkel;
import com.youza.persitence.KommasseManager;

import java.awt.CardLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class MainGui extends JFrame implements ItemListener {

	/**
     * 
     */
	private static final long serialVersionUID = -8415231692699427573L;
	private JComboBox<Schenkel> jcSchenkelLinks = new JComboBox<Schenkel>();
	private JComboBox<Integer> jcSchenkelTypLinks = new JComboBox<Integer>();
	private JComboBox<Schenkel> jcSchenkelRechts = new JComboBox<Schenkel>();
	private JComboBox<Integer> jcSchenkelTypRechts = new JComboBox<Integer>();
	private JComboBox<Schenkel> jcSchenkelOben = new JComboBox<Schenkel>();
	private JComboBox<Integer> jcSchenkelTypOben = new JComboBox<Integer>();
	private JComboBox<Schenkel> jcSchenkelUnten = new JComboBox<Schenkel>();
	private JComboBox<Integer> jcSchenkelTypUnten = new JComboBox<Integer>();
	
	private Schenkel aktSchenkel;
	private Schenkel aktobenSchenkel;
	private Schenkel aktuntenSchenkel;
	private Schenkel aktlinksSchenkel;
	private Schenkel aktrechtsSchenkel;
	
	private Kommasse kommasse;

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		new MainGui();

	}

	public MainGui() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		initComboBoxes();
		this.setTitle("Schenkel Editor");
		this.pack();
		this.setVisible(true);

	}

	private void initComboBoxes() {
		KommasseManager kommMgr = new KommasseManager();
		kommasse = kommMgr.getKommasse(1);

		
		JPanel jpCards = new JPanel();
		jpCards.setLayout(new CardLayout());

		JPanel jpOben = new JPanel();
		jpOben.setLayout(new GridLayout(0, 2));

		this.setLayout(new GridLayout(6, 3));
		
		JLabel jlLinks = new JLabel("Links");
		JLabel jlRechts = new JLabel("Rechts");
		JLabel jlOben = new JLabel("Oben");
		JLabel jlUnten = new JLabel("Unten");
		
		JLabel jlFiller1 = new JLabel("");
		JLabel jlFiller2 = new JLabel("");
		JLabel jlFiller3 = new JLabel("");
		JLabel jlSchenkel = new JLabel("Schenkel");
		JLabel jlSchenkelTyp = new JLabel("Schenkel Typ");
		
		JButton jbSave = new JButton("Speichern");
		ActionListener alSave = new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				kommasse.setUlinks(((Schenkel)jcSchenkelLinks.getSelectedItem()).getKey());
				kommasse.setUrechts(((Schenkel)jcSchenkelRechts.getSelectedItem()).getKey());
				kommasse.setUoben(((Schenkel)jcSchenkelOben.getSelectedItem()).getKey());
				kommasse.setUunten(((Schenkel)jcSchenkelUnten.getSelectedItem()).getKey());
				kommasse.setLuftLinks((int)jcSchenkelTypLinks.getSelectedItem());
				kommasse.setLuftRechts((int)jcSchenkelTypRechts.getSelectedItem());
				kommasse.setLuftOben((int)jcSchenkelTypOben.getSelectedItem());
				kommasse.setLuftUnten((int)jcSchenkelTypUnten.getSelectedItem());
				
				KommasseManager kommMgr = new KommasseManager();
				if(kommMgr.updateKommasse(kommasse))
				{
					JOptionPane.showMessageDialog(null, "Der Datensatz wurde aktualisiert!");
					setActualSchenkels();
				}
			}
			
		};
		jbSave.addActionListener(alSave);
		
		this.add(jlFiller1);
		this.add(jlSchenkel);
		this.add(jlSchenkelTyp);
		
		this.add(jlLinks);
		this.add(jcSchenkelLinks);
		this.add(jcSchenkelTypLinks);
		this.add(jlRechts);
		this.add(jcSchenkelRechts);
		this.add(jcSchenkelTypRechts);
		this.add(jlOben);
		this.add(jcSchenkelOben);
		this.add(jcSchenkelTypOben);
		this.add(jlUnten);
		this.add(jcSchenkelUnten);
		this.add(jcSchenkelTypUnten);
		
		this.add(jlFiller2);
		this.add(jlFiller3);
		this.add(jbSave);
		
		
		setActualSchenkels();
		
		addItemsToComboBox(jcSchenkelTypLinks, jcSchenkelLinks,		aktlinksSchenkel);
		addItemsToComboBox(jcSchenkelTypRechts, jcSchenkelRechts,	aktrechtsSchenkel);
		addItemsToComboBox(jcSchenkelTypOben, jcSchenkelOben,		aktobenSchenkel);
		addItemsToComboBox(jcSchenkelTypUnten, jcSchenkelUnten,		aktuntenSchenkel);
		
		jcSchenkelLinks.setActionCommand("LINKS");
		jcSchenkelRechts.setActionCommand("RECHTS");
		jcSchenkelOben.setActionCommand("OBEN");
		jcSchenkelUnten.setActionCommand("UNTEN");
		
		jcSchenkelLinks.addItemListener(this);
		jcSchenkelRechts.addItemListener(this);
		jcSchenkelOben.addItemListener(this);
		jcSchenkelUnten.addItemListener(this);

	}

	@Override
	public void itemStateChanged(ItemEvent event) {
		
		@SuppressWarnings("unchecked")
		JComboBox<Schenkel> jcSchenkel = (JComboBox<Schenkel>) event.getSource();
		if (aktSchenkel == null
				|| !(jcSchenkel.getSelectedItem().equals(aktSchenkel))) {
			if(jcSchenkel.getActionCommand().equals("LINKS"))
				changeJcSchenkelTyp(jcSchenkel, jcSchenkelTypLinks, aktlinksSchenkel);
			if(jcSchenkel.getActionCommand().equals("RECHTS"))
				changeJcSchenkelTyp(jcSchenkel, jcSchenkelTypRechts, aktrechtsSchenkel);
			if(jcSchenkel.getActionCommand().equals("OBEN"))
				changeJcSchenkelTyp(jcSchenkel, jcSchenkelTypOben, aktobenSchenkel);
			if(jcSchenkel.getActionCommand().equals("UNTEN"))
				changeJcSchenkelTyp(jcSchenkel, jcSchenkelTypUnten, aktuntenSchenkel);
		}

	}
	private void changeJcSchenkelTyp(JComboBox<Schenkel> jcSchenkel,JComboBox<Integer> jcSchenkelTyp,Schenkel oldSchenkel) {
			Schenkel schenkel = (Schenkel) jcSchenkel.getSelectedItem();
			
			if (schenkel.getKey().equals("20/20/20/2")) {
				jcSchenkelTyp.removeAllItems();
				for (int i = 5; i < 15; i++) {
					jcSchenkelTyp.addItem(i);
				}
			} else if (schenkel.getKey().equals("30/20/30/2")) {
				jcSchenkelTyp.removeAllItems();
				for (int i = 5; i < 25; i++) {
					jcSchenkelTyp.addItem(i);
				}
			} else if (schenkel.getKey().equals("40/20/40/2")) {
				jcSchenkelTyp.removeAllItems();
				for (int i = 5; i < 35; i++) {
					jcSchenkelTyp.addItem(i);
				}
			}
			if(schenkel.getKey().equals(oldSchenkel.getKey())){
				jcSchenkelTyp.setSelectedItem(oldSchenkel.getActualValue());
			}
	}
	private void addItemsToComboBox(JComboBox<Integer> jcSchenkelTyp, JComboBox<Schenkel> jcSchenkel, Schenkel schenkel) {
		String[] linksA20 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14" };
		String[] linksA30 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
				"24" };
		String[] linksA40 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
				"24", "25", "26", "27", "28", "29", "30", "31", "32", "33",
				"34" };

		System.out.println(schenkel.getActualValue());
		Schenkel schenkelA20 = new Schenkel();
		schenkelA20.setKey("20/20/20/2");
		schenkelA20.setValues(linksA20);

		Schenkel schenkelA30 = new Schenkel();
		schenkelA30.setKey("30/20/30/2");
		schenkelA30.setValues(linksA30);

		Schenkel schenkelA40 = new Schenkel();
		schenkelA40.setKey("40/20/40/2");
		schenkelA40.setValues(linksA40);
		
		if (schenkel.getKey().equals("20/20/20/2") && schenkel.getActualValue() != 0) {
			jcSchenkel.addItem(schenkelA20);
			jcSchenkel.addItem(schenkelA30);
			jcSchenkel.addItem(schenkelA40);
			for (int i = 5; i < 15; i++) {
				jcSchenkelTyp.addItem(i);
			}
			jcSchenkelTyp.setSelectedItem(schenkel.getActualValue());
			schenkelA20.setActualValue(schenkel.getActualValue());
		} else if (schenkel.getKey().equals("30/20/30/2") && schenkel.getActualValue() != 0) {
			jcSchenkel.addItem(schenkelA30);
			jcSchenkel.addItem(schenkelA20);
			jcSchenkel.addItem(schenkelA40);
			for (int i = 5; i < 25; i++) {
				jcSchenkelTyp.addItem(i);
			}
			jcSchenkelTyp.setSelectedItem(schenkel.getActualValue());
		} else if (schenkel.getKey().equals("40/20/40/2") && schenkel.getActualValue() != 0) {
			jcSchenkel.addItem(schenkelA40);
			jcSchenkel.addItem(schenkelA20);
			jcSchenkel.addItem(schenkelA30);
			for (int i = 5; i < 35; i++) {
				jcSchenkelTyp.addItem(i);
			}
			jcSchenkelTyp.setSelectedItem(schenkel.getActualValue());
		}
		else {
			jcSchenkel.addItem(schenkelA20);
			jcSchenkel.addItem(schenkelA30);
			jcSchenkel.addItem(schenkelA40);
		}
	}
	private void setActualSchenkels(){
		aktSchenkel = null;
		aktlinksSchenkel = new Schenkel();
		aktlinksSchenkel.setActualValue(kommasse.getLuftLinks());
		aktlinksSchenkel.setKey(kommasse.getUlinks());
		
		aktrechtsSchenkel = new Schenkel();
		aktrechtsSchenkel.setActualValue(kommasse.getLuftRechts());
		aktrechtsSchenkel.setKey(kommasse.getUrechts());
		
		aktobenSchenkel = new Schenkel();
		aktobenSchenkel.setActualValue(kommasse.getLuftOben());
		aktobenSchenkel.setKey(kommasse.getUoben());
		
		aktuntenSchenkel = new Schenkel();
		aktuntenSchenkel.setActualValue(kommasse.getLuftUnten());
		aktuntenSchenkel.setKey(kommasse.getUunten());
	}
}

Dabei rauskommt dann:
Screenshot.png

Viele Grüße
Youza
 

Anhänge

Hi Youza :)

is ja a wahnsinn!!
Eine Hilfe in diesem Ausmaß hätte ich nie für möglich gehalten, absolut aussergewöhnlich!

Jetzt werde ich das Ganze mal in die Applikation einbinden und den Code studieren.
Melde mich dann, wenn's drin ist.

Vielen herzlichen Dank - finde das Attribut "ist einfach richtig nett" für stark untertrieben :)

Winke derweil
quidnovi
 
Soooooooooooo.....nun habe ich ein wenig erweitert....hoffe, dass ich keine progger-Regeln verletzt habe :-(

Grund der Erweiterung:
Es gibt in dieser Anwendung weit mehr als links, rechts, oben und unten.

Es gibt noch typLinks, typRechts, typOben, typUnten.
Diese Typen untergliedern sich in A, B und C

Ein Bild sagt mehr als....
dbTypenAll.png

Die Datensätze werden folgendermaßen zusammengestellt:
typLinks + uLinks + luftLinks
typRechts + uRechts + luftRechts
typOben + uOben + luftOben
typUnten + uUnten + luftUnten

Beispiel:
typLinks = A, uLinks = 30/20/30/2, luftLinks = 5

Sonderfall C:
Hier gibt es keine JComboBox mit uIrgendEineSeite wie 20/20/20/2, 30/20/30/2 oder 40/0/40/2
Ebenso kann bei der luftIrgendEineSeite nur zwischen 1 und 6 wählen.
Beispiel:
typOben = C, uOben = 0, luftOben = 3

Und nun die dafür notwendigen Scripts, in welche ich Namen neu vergeben habe, um mich besser zu orientieren.

Schenkel.java
ist die selbe geblieben

KommMasse.java
Java:
public class Kommasse {
	private int kommid;
	private String typLinks;
	private String typRechts;
	private String typOben;
	private String typUnten;
	private String uLinks;
	private String uRechts;
	private String uOben;
	private String uUnten;
	private int luftLinks;
	private int luftRechts;
	private int luftOben;
	private int luftUnten;
	
	public int getKommid() {
		return kommid;
	}
	public void setKommid(int kommid) {
		this.kommid = kommid;
	}
	public String getTypLinks() {
		return typLinks;
	}
	public void setTypLinks(String typLinks) {
		this.typLinks = typLinks;
	}
	public String getTypRechts() {
		return typRechts;
	}
	public void setTypRechts(String typRechts) {
		this.typRechts = typRechts;
	}
	public String getTypOben() {
		return typOben;
	}
	public void setTypOben(String typOben) {
		this.typOben = typOben;
	}
	public String getTypUnten() {
		return typUnten;
	}
	public void setTypUnten(String typUnten) {
		this.typUnten = typUnten;
	}
	public String getUlinks() {
		return uLinks;
	}
	public void setUlinks(String uLinks) {
		this.uLinks = uLinks;
	}
	public String getUrechts() {
		return uRechts;
	}
	public void setUrechts(String uRechts) {
		this.uRechts = uRechts;
	}
	public String getUoben() {
		return uOben;
	}
	public void setUoben(String uOben) {
		this.uOben = uOben;
	}
	public String getUunten() {
		return uUnten;
	}
	public void setUunten(String uUnten) {
		this.uUnten = uUnten;
	}
	public int getLuftLinks() {
		return luftLinks;
	}
	public void setLuftLinks(int luftLinks) {
		this.luftLinks = luftLinks;
	}
	public int getLuftRechts() {
		return luftRechts;
	}
	public void setLuftRechts(int luftRechts) {
		this.luftRechts = luftRechts;
	}
	public int getLuftOben() {
		return luftOben;
	}
	public void setLuftOben(int luftOben) {
		this.luftOben = luftOben;
	}
	public int getLuftUnten() {
		return luftUnten;
	}
	public void setLuftUnten(int luftUnten) {
		this.luftUnten = luftUnten;
	}
	@Override
	public String toString(){
		return String.valueOf(kommid);
	}
}

KommMasseManager.java
Java:
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.youza.dto.Kommasse;

public class KommasseManager {
	ConnectH2DB Connector = new ConnectH2DB();

	public Kommasse getKommasse(int id) {
		Kommasse kommasse = new Kommasse();
		try {
			Statement stmt = Connector.getConn().createStatement();

			String sql = "SELECT * FROM KOMMMASSE Where KOMMID = " + id;
			ResultSet rs = stmt.executeQuery(sql);

			while (rs.next()) {
				kommasse.setKommid(rs.getInt("kommId"));
				kommasse.setTypLinks(rs.getString("typLinks"));
				kommasse.setTypRechts(rs.getString("typRechts"));
				kommasse.setTypOben(rs.getString("typOben"));
				kommasse.setTypUnten(rs.getString("typUnten"));
				kommasse.setUlinks(rs.getString("uLinks"));
				kommasse.setUrechts(rs.getString("uRechts"));
				kommasse.setUoben(rs.getString("uOben"));
				kommasse.setUunten(rs.getString("uUnten"));
				kommasse.setLuftLinks(rs.getInt("luftLinks"));
				kommasse.setLuftRechts(rs.getInt("luftRechts"));
				kommasse.setLuftOben(rs.getInt("luftOben"));
				kommasse.setLuftUnten(rs.getInt("luftUnten"));
			}
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
		return kommasse;

	}

	public boolean updateKommasse(Kommasse kommasse) {
		try {

			String sql = "UPDATE kommMasse SET uLinks = ?, uRechts = ?, uOben = ?, uUnten = ?, luftLinks = ?, luftRechts = ?, luftOben = ?, luftUnten = ? WHERE kommId = ?";
			PreparedStatement updateLieferant = Connector.getConn().prepareStatement(sql);
			updateLieferant.setString(1, kommasse.getUlinks());
			updateLieferant.setString(2, kommasse.getUrechts());
			updateLieferant.setString(3, kommasse.getUoben());
			updateLieferant.setString(4, kommasse.getUunten());
			updateLieferant.setInt(5, kommasse.getLuftLinks());
			updateLieferant.setInt(6, kommasse.getLuftRechts());
			updateLieferant.setInt(7, kommasse.getLuftOben());
			updateLieferant.setInt(8, kommasse.getLuftUnten());
			updateLieferant.setInt(9, kommasse.getKommid());
			updateLieferant.executeUpdate();

		} catch (SQLException e1) {
			e1.printStackTrace();
			return false;
		}
		return true;

	}

}

Und nun die stark erweiterte MainGui.java
Java:
import com.youza.dto.Kommasse;
import com.youza.dto.Schenkel;
import com.youza.persitence.KommasseManager;

import java.awt.CardLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class MainGui extends JFrame implements ItemListener {

	/**
     * 
     */
	private static final long serialVersionUID = -8415231692699427573L;
	private JComboBox<Schenkel> cbSchenkelLinksA = new JComboBox<Schenkel>();
	private JComboBox<Schenkel> cbSchenkelLinksB = new JComboBox<Schenkel>();
	private JComboBox<Schenkel> cbSchenkelLinksC = new JComboBox<Schenkel>();
	
	private JComboBox<Schenkel> cbSchenkelRechtsA = new JComboBox<Schenkel>();
	private JComboBox<Schenkel> cbSchenkelRechtsB = new JComboBox<Schenkel>();
	private JComboBox<Schenkel> cbSchenkelRechtsC = new JComboBox<Schenkel>();
	
	private JComboBox<Schenkel> cbSchenkelObenA = new JComboBox<Schenkel>();
	private JComboBox<Schenkel> cbSchenkelObenB = new JComboBox<Schenkel>();
	private JComboBox<Schenkel> cbSchenkelObenC = new JComboBox<Schenkel>();
	
	private JComboBox<Schenkel> cbSchenkelUntenA = new JComboBox<Schenkel>();
	private JComboBox<Schenkel> cbSchenkelUntenB = new JComboBox<Schenkel>();
	private JComboBox<Schenkel> cbSchenkelUntenC = new JComboBox<Schenkel>();

	//------------------------------------------------------------------------------------------------
	private JComboBox<Integer> cbEinstandLinksA = new JComboBox<Integer>();
	private JComboBox<Integer> cbEinstandLinksB = new JComboBox<Integer>();
	private JComboBox<Integer> cbAbstandLinksC = new JComboBox<Integer>();

	private JComboBox<Integer> cbEinstandRechtsA = new JComboBox<Integer>();
	private JComboBox<Integer> cbEinstandRechtsB = new JComboBox<Integer>();
	private JComboBox<Integer> cbAbstandRechtsC = new JComboBox<Integer>();

	private JComboBox<Integer> cbEinstandObenA = new JComboBox<Integer>();
	private JComboBox<Integer> cbEinstandObenB = new JComboBox<Integer>();
	private JComboBox<Integer> cbAbstandObenC = new JComboBox<Integer>();	

	private JComboBox<Integer> cbEinstandUntenA = new JComboBox<Integer>();
	private JComboBox<Integer> cbEinstandUntenB = new JComboBox<Integer>();
	private JComboBox<Integer> cbAbstandUntenC = new JComboBox<Integer>();
	
	private Schenkel aktSchenkel;
	private Schenkel aktSchenkelLinksA;
	private Schenkel aktSchenkelLinksB;
	private Schenkel aktSchenkelLinksC;
	private Schenkel aktSchenkelRechtsA;
	private Schenkel aktSchenkelRechtsB;
	private Schenkel aktSchenkelRechtsC;
	private Schenkel aktSchenkelObenA;
	private Schenkel aktSchenkelObenB;
	private Schenkel aktSchenkelObenC;
	private Schenkel aktSchenkelUntenA;
	private Schenkel aktSchenkelUntenB;
	private Schenkel aktSchenkelUntenC;
	
	private Kommasse kommasse;

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		new MainGui();

	}

	public MainGui() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		initComboBoxes();
		this.setTitle("Schenkel Editor");
		this.pack();
		this.setVisible(true);

	}

	private void initComboBoxes() {
		KommasseManager kommMgr = new KommasseManager();
		kommasse = kommMgr.getKommasse(1);

		
		JPanel jpCards = new JPanel();
		jpCards.setLayout(new CardLayout());

		getContentPane().setLayout(new GridLayout(0, 3));
		
		JLabel jlLinksA = new JLabel("LinksA");
		JLabel jlLinksB = new JLabel("LinksB");
		JLabel jlLinksC = new JLabel("LinksC");
		
		JLabel jlRechtsA = new JLabel("RechtsA");
		JLabel jlRechtsB = new JLabel("RechtsB");
		JLabel jlRechtsC = new JLabel("RechtsC");
		
		JLabel jlObenA = new JLabel("ObenA");
		JLabel jlObenB = new JLabel("ObenB");
		JLabel jlObenC = new JLabel("ObenC");
		
		JLabel jlUntenA = new JLabel("UntenA");
		JLabel jlUntenB = new JLabel("UntenB");
		JLabel jlUntenC = new JLabel("UntenC");
		
		JLabel jlFiller1 = new JLabel("");
		JLabel jlFiller2 = new JLabel("");
		JLabel jlFiller3 = new JLabel("");
		JLabel jlFiller4 = new JLabel("");
		JLabel jlFiller5 = new JLabel("");
		JLabel jlFiller6 = new JLabel("");
		JLabel jlFiller7 = new JLabel("");
		JLabel jlSchenkel = new JLabel("Schenkel");
		JLabel jlSchenkelTyp = new JLabel("Schenkel Typ");
		
		JButton jbSave = new JButton("Speichern");
		
		
		
		ActionListener alSave = new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				// links----------------------------------------------------------------------------------------
				if(kommasse.getTypLinks().equals("A")) {
					kommasse.setUlinks(((Schenkel)cbSchenkelLinksA.getSelectedItem()).getKey());
					kommasse.setLuftLinks((int)cbEinstandLinksA.getSelectedItem());
				}
				else if(kommasse.getTypLinks().equals("B")) {
					kommasse.setUlinks(((Schenkel)cbSchenkelLinksB.getSelectedItem()).getKey());
					kommasse.setLuftLinks((int)cbEinstandLinksB.getSelectedItem());
				}
				else if(kommasse.getTypLinks().equals("C")) {
//					kommasse.setUlinks(((Schenkel)cbSchenkelLinksC.getSelectedItem()).getKey());
					kommasse.setLuftLinks((int)cbAbstandLinksC.getSelectedItem());
				}
				
				// rechts----------------------------------------------------------------------------------------
				if(kommasse.getTypRechts().equals("A")) {
					kommasse.setUrechts(((Schenkel)cbSchenkelRechtsA.getSelectedItem()).getKey());
					kommasse.setLuftRechts((int)cbEinstandRechtsA.getSelectedItem());
				}
				else if(kommasse.getTypRechts().equals("B")) {
					kommasse.setUrechts(((Schenkel)cbSchenkelRechtsB.getSelectedItem()).getKey());
					kommasse.setLuftRechts((int)cbEinstandRechtsB.getSelectedItem());
				}
				else if(kommasse.getTypRechts().equals("C")) {
//					kommasse.setUrechts(((Schenkel)cbSchenkelRechtsC.getSelectedItem()).getKey());
					kommasse.setLuftRechts((int)cbAbstandRechtsC.getSelectedItem());
				}		
				
				// oben----------------------------------------------------------------------------------------
				if(kommasse.getTypOben().equals("A")) {
					kommasse.setUoben(((Schenkel)cbSchenkelObenA.getSelectedItem()).getKey());
					kommasse.setLuftOben((int)cbEinstandObenA.getSelectedItem());
				}
				else if(kommasse.getTypOben().equals("B")) {
					kommasse.setUoben(((Schenkel)cbSchenkelObenB.getSelectedItem()).getKey());
					kommasse.setLuftOben((int)cbEinstandObenB.getSelectedItem());
				}
				else if(kommasse.getTypOben().equals("C")) {
//					kommasse.setUoben(((Schenkel)cbSchenkelObenC.getSelectedItem()).getKey());
					kommasse.setLuftOben((int)cbAbstandObenC.getSelectedItem());
				}
				
				// unten----------------------------------------------------------------------------------------
				if(kommasse.getTypUnten().equals("A")) {
					kommasse.setUunten(((Schenkel)cbSchenkelUntenA.getSelectedItem()).getKey());
					kommasse.setLuftUnten((int)cbEinstandUntenA.getSelectedItem());
				}
				else if(kommasse.getTypUnten().equals("B")) {
					kommasse.setUunten(((Schenkel)cbSchenkelUntenB.getSelectedItem()).getKey());	
					kommasse.setLuftUnten((int)cbEinstandUntenB.getSelectedItem());
				}
				else if(kommasse.getTypUnten().equals("C")) {
//					kommasse.setUunten(((Schenkel)cbSchenkelUntenC.getSelectedItem()).getKey());
					kommasse.setLuftUnten((int)cbAbstandUntenC.getSelectedItem());
				}

				KommasseManager kommMgr = new KommasseManager();
				if(kommMgr.updateKommasse(kommasse))
				{
					JOptionPane.showMessageDialog(null, "Der Datensatz wurde aktualisiert!");
					setActualSchenkels();
				}
			}
			
		};
		jbSave.addActionListener(alSave);
		
		getContentPane().add(jlFiller1);
		getContentPane().add(jlSchenkel);
		getContentPane().add(jlSchenkelTyp);
		
		// links-----------------------------------------------------
		if(kommasse.getTypLinks().equals("A")) {
			getContentPane().add(jlLinksA);
			getContentPane().add(cbSchenkelLinksA);
			getContentPane().add(cbEinstandLinksA);			
		}
		else if(kommasse.getTypLinks().equals("B")) {	
			getContentPane().add(jlLinksB);
			getContentPane().add(cbSchenkelLinksB);
			getContentPane().add(cbEinstandLinksB);
			
		}
		else if(kommasse.getTypLinks().equals("C")) {	
			getContentPane().add(jlLinksC);
			getContentPane().add(jlFiller2);
			getContentPane().add(cbAbstandLinksC);				
		}
		else {
			getContentPane().add(jlLinksA);
			getContentPane().add(cbSchenkelLinksA);
			getContentPane().add(cbEinstandLinksA);		
		}
		
		// rechts----------------------------------------------------
		if(kommasse.getTypRechts().equals("A")) {
			getContentPane().add(jlRechtsA);
			getContentPane().add(cbSchenkelRechtsA);
			getContentPane().add(cbEinstandRechtsA);
		}
		else if(kommasse.getTypRechts().equals("B")) {	
			getContentPane().add(jlRechtsB);
			getContentPane().add(cbSchenkelRechtsB);
			getContentPane().add(cbEinstandRechtsB);			
		}
		else if(kommasse.getTypRechts().equals("C")) {	
			getContentPane().add(jlRechtsC);
			getContentPane().add(jlFiller3);
			getContentPane().add(cbAbstandRechtsC);			
		}
		else {
			getContentPane().add(jlRechtsA);
			getContentPane().add(cbSchenkelRechtsA);
			getContentPane().add(cbEinstandRechtsA);
		}
		
		// oben-----------------------------------------------------
		if(kommasse.getTypOben().equals("A")) {
			getContentPane().add(jlObenA);
			getContentPane().add(cbSchenkelObenA);
			getContentPane().add(cbEinstandObenA);
		}
		else if(kommasse.getTypOben().equals("B")) {	
			getContentPane().add(jlObenB);
			getContentPane().add(cbSchenkelObenB);
			getContentPane().add(cbEinstandObenB);
		}
		else if(kommasse.getTypOben().equals("C")) {	
			getContentPane().add(jlObenC);
			getContentPane().add(jlFiller4);
			getContentPane().add(cbAbstandObenC);
		}
		else {
			getContentPane().add(jlObenA);
			getContentPane().add(cbSchenkelObenA);
			getContentPane().add(cbEinstandObenA);
		}
		
		// unten-----------------------------------------------------
		if (kommasse.getTypUnten().equals("A")) {
			getContentPane().add(jlUntenA);
			getContentPane().add(cbSchenkelUntenA);
			getContentPane().add(cbEinstandUntenA);
		} 
		else if (kommasse.getTypUnten().equals("B")) {
			getContentPane().add(jlUntenB);
			getContentPane().add(cbSchenkelUntenB);
			getContentPane().add(cbEinstandUntenB);
		} 
		else if (kommasse.getTypUnten().equals("C")) {
			getContentPane().add(jlUntenC);
			getContentPane().add(jlFiller5);
			getContentPane().add(cbAbstandUntenC);
		} 
		else {
			getContentPane().add(jlUntenA);
			getContentPane().add(cbSchenkelUntenA);
			getContentPane().add(cbEinstandUntenA);
		}
		
		getContentPane().add(jlFiller6);
		getContentPane().add(jlFiller7);
		getContentPane().add(jbSave);
		
		
		setActualSchenkels();
		
		// links-------------------------------------------------------------------------------------------
		if(kommasse.getTypLinks().equals("A")) {
			addItemsToComboBox(cbEinstandLinksA, cbSchenkelLinksA, aktSchenkelLinksA);
			cbSchenkelLinksA.setActionCommand("LINKSA");
			cbSchenkelLinksA.addItemListener(this);
		}
		else if(kommasse.getTypLinks().equals("B")) {
			addItemsToComboBox(cbEinstandLinksB, cbSchenkelLinksB, aktSchenkelLinksB);
			cbSchenkelLinksB.setActionCommand("LINKSB");
			cbSchenkelLinksB.addItemListener(this);
		}
		else if(kommasse.getTypLinks().equals("C")) {
			addItemsToComboBox(cbAbstandLinksC, cbSchenkelLinksC, aktSchenkelLinksC);
			cbSchenkelLinksC.setActionCommand("LINKSC");
			cbSchenkelLinksC.addItemListener(this);
		}
		else {
			addItemsToComboBox(cbEinstandLinksA, cbSchenkelLinksA, aktSchenkelLinksA);
			addItemsToComboBox(cbEinstandLinksB, cbSchenkelLinksB, aktSchenkelLinksB);
			addItemsToComboBox(cbAbstandLinksC, cbSchenkelLinksC, aktSchenkelLinksC);
			cbSchenkelLinksA.setActionCommand("LINKSA");
			cbSchenkelLinksB.setActionCommand("LINKSB");
			cbSchenkelLinksC.setActionCommand("LINKSC");
			cbSchenkelLinksA.addItemListener(this);
			cbSchenkelLinksB.addItemListener(this);
			cbSchenkelLinksC.addItemListener(this);
		}
		
		// rechts-------------------------------------------------------------------------------------------
		if (kommasse.getTypRechts().equals("A")) {
			addItemsToComboBox(cbEinstandRechtsA, cbSchenkelRechtsA, aktSchenkelRechtsA);
			cbSchenkelRechtsA.setActionCommand("RECHTSA");
			cbSchenkelRechtsA.addItemListener(this);
		} 
		else if (kommasse.getTypRechts().equals("B")) {
			addItemsToComboBox(cbEinstandRechtsB, cbSchenkelRechtsB, aktSchenkelRechtsB);
			cbSchenkelRechtsB.setActionCommand("RECHTSB");
			cbSchenkelRechtsB.addItemListener(this);
		} 
		else if (kommasse.getTypRechts().equals("C")) {
			addItemsToComboBox(cbAbstandRechtsC, cbSchenkelRechtsC, aktSchenkelRechtsC);
			cbSchenkelRechtsC.setActionCommand("RECHTSC");
			cbSchenkelRechtsC.addItemListener(this);
		} 
		else {
			addItemsToComboBox(cbEinstandRechtsA, cbSchenkelRechtsA, aktSchenkelRechtsA);
			addItemsToComboBox(cbEinstandRechtsB, cbSchenkelRechtsB, aktSchenkelRechtsB);
			addItemsToComboBox(cbAbstandRechtsC, cbSchenkelRechtsC, aktSchenkelRechtsC);
			cbSchenkelRechtsA.setActionCommand("RECHTSA");
			cbSchenkelRechtsB.setActionCommand("RECHTSB");
			cbSchenkelRechtsC.setActionCommand("RECHTSC");
			cbSchenkelRechtsA.addItemListener(this);
			cbSchenkelRechtsB.addItemListener(this);
			cbSchenkelRechtsC.addItemListener(this);
		}
		
		// oben-------------------------------------------------------------------------------------------
		if (kommasse.getTypOben().equals("A")) {
			addItemsToComboBox(cbEinstandObenA, cbSchenkelObenA, aktSchenkelObenA);
			cbSchenkelObenA.setActionCommand("OBENA");	
			cbSchenkelObenA.addItemListener(this);
		} 
		else if (kommasse.getTypOben().equals("B")) {
			addItemsToComboBox(cbEinstandObenB, cbSchenkelObenB, aktSchenkelObenB);
			cbSchenkelObenB.setActionCommand("OBENB");
			cbSchenkelObenB.addItemListener(this);
		} 
		else if (kommasse.getTypOben().equals("C")) {
			addItemsToComboBox(cbAbstandObenC, cbSchenkelObenC, aktSchenkelObenC);
			cbSchenkelObenC.setActionCommand("OBENC");	
			cbSchenkelObenC.addItemListener(this);
		} 
		else {
			addItemsToComboBox(cbEinstandObenA, cbSchenkelObenA, aktSchenkelObenA);
			addItemsToComboBox(cbEinstandObenB, cbSchenkelObenB, aktSchenkelObenB);
			addItemsToComboBox(cbAbstandObenC, cbSchenkelObenC, aktSchenkelObenC);
			cbSchenkelObenA.setActionCommand("OBENA");
			cbSchenkelObenB.setActionCommand("OBENB");
			cbSchenkelObenC.setActionCommand("OBENC");		
			cbSchenkelObenA.addItemListener(this);
			cbSchenkelObenB.addItemListener(this);
			cbSchenkelObenC.addItemListener(this);
		}
		
		// unten-------------------------------------------------------------------------------------------
		if (kommasse.getTypUnten().equals("A")) {
			addItemsToComboBox(cbEinstandUntenA, cbSchenkelUntenA, aktSchenkelUntenA);
			cbSchenkelUntenA.setActionCommand("UNTENA");
			cbSchenkelUntenA.addItemListener(this);
		} 
		else if (kommasse.getTypUnten().equals("B")) {
			addItemsToComboBox(cbEinstandUntenB, cbSchenkelUntenB, aktSchenkelUntenB);
			cbSchenkelUntenB.setActionCommand("UNTENB");
			cbSchenkelUntenB.addItemListener(this);
		} 
		else if (kommasse.getTypUnten().equals("C")) {
			addItemsToComboBox(cbAbstandUntenC, cbSchenkelUntenC, aktSchenkelUntenC);
			cbSchenkelUntenC.setActionCommand("UNTENC");
			cbSchenkelUntenC.addItemListener(this);
		} 
		else {
			addItemsToComboBox(cbEinstandUntenA, cbSchenkelUntenA, aktSchenkelUntenA);
			addItemsToComboBox(cbEinstandUntenB, cbSchenkelUntenB, aktSchenkelUntenB);
			addItemsToComboBox(cbAbstandUntenC, cbSchenkelUntenC, aktSchenkelUntenC);
			cbSchenkelUntenA.setActionCommand("UNTENA");
			cbSchenkelUntenB.setActionCommand("UNTENB");
			cbSchenkelUntenC.setActionCommand("UNTENC");
			cbSchenkelUntenA.addItemListener(this);
			cbSchenkelUntenB.addItemListener(this);
			cbSchenkelUntenC.addItemListener(this);
		}
	}

	@Override
	public void itemStateChanged(ItemEvent event) {

		@SuppressWarnings("unchecked")
		JComboBox<Schenkel> jcSchenkel = (JComboBox<Schenkel>) event.getSource();
		if (aktSchenkel == null || !(jcSchenkel.getSelectedItem().equals(aktSchenkel))) {
			
			// links--------------------------------------------------------------------------------------
			if (kommasse.getTypLinks().equals("A")) {
				if(jcSchenkel.getActionCommand().equals("LINKSA"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandLinksA, aktSchenkelLinksA);
			}
			else if (kommasse.getTypLinks().equals("B")) {
				if(jcSchenkel.getActionCommand().equals("LINKSB"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandLinksB, aktSchenkelLinksB);
			}
			else if (kommasse.getTypLinks().equals("C")) {
				if(jcSchenkel.getActionCommand().equals("LINKSC"))
					changeJcSchenkelTyp(jcSchenkel, cbAbstandLinksC, aktSchenkelLinksC);	
			}
			else {
				if(jcSchenkel.getActionCommand().equals("LINKSA"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandLinksA, aktSchenkelLinksA);
				if(jcSchenkel.getActionCommand().equals("LINKSB"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandLinksB, aktSchenkelLinksB);
				if(jcSchenkel.getActionCommand().equals("LINKSC"))
					changeJcSchenkelTyp(jcSchenkel, cbAbstandLinksC, aktSchenkelLinksC);				
			}
			
			// rechts--------------------------------------------------------------------------------------
			if (kommasse.getTypRechts().equals("A")) {
				if(jcSchenkel.getActionCommand().equals("RECHTSA"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandRechtsA, aktSchenkelRechtsA);
			} 
			else if (kommasse.getTypRechts().equals("B")) {
				if(jcSchenkel.getActionCommand().equals("RECHTSB"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandRechtsB, aktSchenkelRechtsB);
			} 
			else if (kommasse.getTypRechts().equals("C")) {
				if(jcSchenkel.getActionCommand().equals("RECHTSC"))
					changeJcSchenkelTyp(jcSchenkel, cbAbstandRechtsC, aktSchenkelRechtsC);
			} 
			else {
				if(jcSchenkel.getActionCommand().equals("RECHTSA"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandRechtsA, aktSchenkelRechtsA);
				if(jcSchenkel.getActionCommand().equals("RECHTSB"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandRechtsB, aktSchenkelRechtsB);
				if(jcSchenkel.getActionCommand().equals("RECHTSC"))
					changeJcSchenkelTyp(jcSchenkel, cbAbstandRechtsC, aktSchenkelRechtsC);
			}
			
			// oben--------------------------------------------------------------------------------------
			if (kommasse.getTypOben().equals("A")) {
				if(jcSchenkel.getActionCommand().equals("OBENA"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandObenA, aktSchenkelObenA);
			}
			else if (kommasse.getTypOben().equals("B")) {
				if(jcSchenkel.getActionCommand().equals("OBENB"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandObenB, aktSchenkelObenB);
			}
			else if (kommasse.getTypOben().equals("C")) {
				if(jcSchenkel.getActionCommand().equals("OBENC"))
					changeJcSchenkelTyp(jcSchenkel, cbAbstandObenC, aktSchenkelObenC);
			}
			else {
				if(jcSchenkel.getActionCommand().equals("OBENA"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandObenA, aktSchenkelObenA);
				if(jcSchenkel.getActionCommand().equals("OBENB"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandObenB, aktSchenkelObenB);
				if(jcSchenkel.getActionCommand().equals("OBENC"))
					changeJcSchenkelTyp(jcSchenkel, cbAbstandObenC, aktSchenkelObenC);
			}
			
			// unten--------------------------------------------------------------------------------------
			if (kommasse.getTypUnten().equals("A")) {
				if(jcSchenkel.getActionCommand().equals("UNTENA"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandUntenA, aktSchenkelUntenA);
			}
			else if (kommasse.getTypUnten().equals("B")) {
				if(jcSchenkel.getActionCommand().equals("UNTENB"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandUntenB, aktSchenkelUntenB);
			}
			else if (kommasse.getTypUnten().equals("C")) {
				if(jcSchenkel.getActionCommand().equals("UNTENC"))
					changeJcSchenkelTyp(jcSchenkel, cbAbstandUntenC, aktSchenkelUntenC);			
			}
			else {
				if(jcSchenkel.getActionCommand().equals("UNTENA"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandUntenA, aktSchenkelUntenA);
				if(jcSchenkel.getActionCommand().equals("UNTENB"))
					changeJcSchenkelTyp(jcSchenkel, cbEinstandUntenB, aktSchenkelUntenB);
				if(jcSchenkel.getActionCommand().equals("UNTENC"))
					changeJcSchenkelTyp(jcSchenkel, cbAbstandUntenC, aktSchenkelUntenC);				
			}
		}
	}
	private void changeJcSchenkelTyp(JComboBox<Schenkel> jcSchenkel,JComboBox<Integer> jcSchenkelTyp,Schenkel oldSchenkel) {
			Schenkel schenkel = (Schenkel) jcSchenkel.getSelectedItem();
			
			if (schenkel.getKey().equals("20/20/20/2")) {
				jcSchenkelTyp.removeAllItems();
				for (int i = 5; i < 15; i++) {
					jcSchenkelTyp.addItem(i);
				}
			} 
			else if (schenkel.getKey().equals("30/20/30/2")) {
				jcSchenkelTyp.removeAllItems();
				for (int i = 5; i < 25; i++) {
					jcSchenkelTyp.addItem(i);
				}
			} 
			else if (schenkel.getKey().equals("40/20/40/2")) {
				jcSchenkelTyp.removeAllItems();
				for (int i = 5; i < 35; i++) {
					jcSchenkelTyp.addItem(i);
				}
			}
			if(schenkel.getKey().equals(oldSchenkel.getKey())){
				jcSchenkelTyp.setSelectedItem(oldSchenkel.getActualValue());
			}
	}
	private void addItemsToComboBox(JComboBox<Integer> jcSchenkelTyp, JComboBox<Schenkel> jcSchenkel, Schenkel schenkel) {
		String[] s20 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14" };
		String[] s30 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
				"24" };
		String[] s40 = { "5", "6", "7", "8", "9", "10", "11", "12", "13",
				"14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
				"24", "25", "26", "27", "28", "29", "30", "31", "32", "33",
				"34" };

		System.out.println(schenkel.getActualValue());
		Schenkel schenkelA20 = new Schenkel();
		schenkelA20.setKey("20/20/20/2");
		schenkelA20.setValues(s20);

		Schenkel schenkelA30 = new Schenkel();
		schenkelA30.setKey("30/20/30/2");
		schenkelA30.setValues(s30);

		Schenkel schenkelA40 = new Schenkel();
		schenkelA40.setKey("40/20/40/2");
		schenkelA40.setValues(s40);
		
		if (schenkel.getKey().equals("20/20/20/2") && schenkel.getActualValue() != 0) {
			jcSchenkel.addItem(schenkelA20);
			jcSchenkel.addItem(schenkelA30);
			jcSchenkel.addItem(schenkelA40);
			for (int i = 5; i < 15; i++) {
				jcSchenkelTyp.addItem(i);
			}
			jcSchenkelTyp.setSelectedItem(schenkel.getActualValue());
			schenkelA20.setActualValue(schenkel.getActualValue());
		} 
		else if (schenkel.getKey().equals("30/20/30/2") && schenkel.getActualValue() != 0) {
			jcSchenkel.addItem(schenkelA30);
			jcSchenkel.addItem(schenkelA20);
			jcSchenkel.addItem(schenkelA40);
			for (int i = 5; i < 25; i++) {
				jcSchenkelTyp.addItem(i);
			}
			jcSchenkelTyp.setSelectedItem(schenkel.getActualValue());
		}
		else if (schenkel.getKey().equals("40/20/40/2") && schenkel.getActualValue() != 0) {
			jcSchenkel.addItem(schenkelA40);
			jcSchenkel.addItem(schenkelA20);
			jcSchenkel.addItem(schenkelA30);
			for (int i = 5; i < 35; i++) {
				jcSchenkelTyp.addItem(i);
			}
			jcSchenkelTyp.setSelectedItem(schenkel.getActualValue());
		}
		else if (schenkel.getKey().equals("0") && schenkel.getActualValue() != 0) {
			for (int i = 1; i < 7; i++) {
				jcSchenkelTyp.addItem(i);
			}
			jcSchenkelTyp.setSelectedItem(schenkel.getActualValue());
		}
		else {
			jcSchenkel.addItem(schenkelA20);
			jcSchenkel.addItem(schenkelA30);
			jcSchenkel.addItem(schenkelA40);
		}
	}
	
	private void setActualSchenkels(){
		aktSchenkel = null;
		
		// links------------------------------------------------------------------
		if (kommasse.getTypLinks().equals("A")) {
			aktSchenkelLinksA = new Schenkel();
			aktSchenkelLinksA.setActualValue(kommasse.getLuftLinks());
			aktSchenkelLinksA.setKey(kommasse.getUlinks());			
		}
		else if (kommasse.getTypLinks().equals("B")) {
			aktSchenkelLinksB = new Schenkel();
			aktSchenkelLinksB.setActualValue(kommasse.getLuftLinks());
			aktSchenkelLinksB.setKey(kommasse.getUlinks());
		}
		else if (kommasse.getTypLinks().equals("C")) {
			aktSchenkelLinksC = new Schenkel();
			aktSchenkelLinksC.setActualValue(kommasse.getLuftLinks());
			aktSchenkelLinksC.setKey(kommasse.getUlinks());
		}
		else {
			aktSchenkelLinksA = new Schenkel();
			aktSchenkelLinksA.setActualValue(kommasse.getLuftLinks());
			aktSchenkelLinksA.setKey(kommasse.getUlinks());
			aktSchenkelLinksB = new Schenkel();
			aktSchenkelLinksB.setActualValue(kommasse.getLuftLinks());
			aktSchenkelLinksB.setKey(kommasse.getUlinks());		
			aktSchenkelLinksC = new Schenkel();
			aktSchenkelLinksC.setActualValue(kommasse.getLuftLinks());
			aktSchenkelLinksC.setKey(kommasse.getUlinks());			
		}
		
		// rechts------------------------------------------------------------------
		if (kommasse.getTypRechts().equals("A")) {
			aktSchenkelRechtsA = new Schenkel();
			aktSchenkelRechtsA.setActualValue(kommasse.getLuftRechts());
			aktSchenkelRechtsA.setKey(kommasse.getUrechts());	
		}
		else if (kommasse.getTypRechts().equals("B")) {
			aktSchenkelRechtsB = new Schenkel();
			aktSchenkelRechtsB.setActualValue(kommasse.getLuftRechts());
			aktSchenkelRechtsB.setKey(kommasse.getUrechts());	
		}
		else if (kommasse.getTypRechts().equals("C")) {
			aktSchenkelRechtsC = new Schenkel();
			aktSchenkelRechtsC.setActualValue(kommasse.getLuftRechts());
			aktSchenkelRechtsC.setKey(kommasse.getUrechts());
		}
		else {
			aktSchenkelRechtsA = new Schenkel();
			aktSchenkelRechtsA.setActualValue(kommasse.getLuftRechts());
			aktSchenkelRechtsA.setKey(kommasse.getUrechts());		
			aktSchenkelRechtsB = new Schenkel();
			aktSchenkelRechtsB.setActualValue(kommasse.getLuftRechts());
			aktSchenkelRechtsB.setKey(kommasse.getUrechts());		
			aktSchenkelRechtsC = new Schenkel();
			aktSchenkelRechtsC.setActualValue(kommasse.getLuftRechts());
			aktSchenkelRechtsC.setKey(kommasse.getUrechts());			
		}

		// oben-------------------------------------------------------------------
		if (kommasse.getTypOben().equals("A")) {
			aktSchenkelObenA = new Schenkel();
			aktSchenkelObenA.setActualValue(kommasse.getLuftOben());
			aktSchenkelObenA.setKey(kommasse.getUoben());
		}
		else if (kommasse.getTypOben().equals("B")) {
			aktSchenkelObenB = new Schenkel();
			aktSchenkelObenB.setActualValue(kommasse.getLuftOben());
			aktSchenkelObenB.setKey(kommasse.getUoben());
		}
		else if (kommasse.getTypOben().equals("C")) {
			aktSchenkelObenC = new Schenkel();
			aktSchenkelObenC.setActualValue(kommasse.getLuftOben());
			aktSchenkelObenC.setKey(kommasse.getUoben());
		}
		else {
			aktSchenkelObenA = new Schenkel();
			aktSchenkelObenA.setActualValue(kommasse.getLuftOben());
			aktSchenkelObenA.setKey(kommasse.getUoben());
			aktSchenkelObenB = new Schenkel();
			aktSchenkelObenB.setActualValue(kommasse.getLuftOben());
			aktSchenkelObenB.setKey(kommasse.getUoben());		
			aktSchenkelObenC = new Schenkel();
			aktSchenkelObenC.setActualValue(kommasse.getLuftOben());
			aktSchenkelObenC.setKey(kommasse.getUoben());
		}
		
		// unten-------------------------------------------------------------------
		if (kommasse.getTypUnten().equals("A")) {
			aktSchenkelUntenA = new Schenkel();
			aktSchenkelUntenA.setActualValue(kommasse.getLuftUnten());
			aktSchenkelUntenA.setKey(kommasse.getUunten());
		}
		else if (kommasse.getTypUnten().equals("B")) {
			aktSchenkelUntenB = new Schenkel();
			aktSchenkelUntenB.setActualValue(kommasse.getLuftUnten());
			aktSchenkelUntenB.setKey(kommasse.getUunten());	
		}
		else if (kommasse.getTypUnten().equals("C")) {
			aktSchenkelUntenC = new Schenkel();
			aktSchenkelUntenC.setActualValue(kommasse.getLuftUnten());
			aktSchenkelUntenC.setKey(kommasse.getUunten());
		}
		else {
			aktSchenkelUntenA = new Schenkel();
			aktSchenkelUntenA.setActualValue(kommasse.getLuftUnten());
			aktSchenkelUntenA.setKey(kommasse.getUunten());
			aktSchenkelUntenB = new Schenkel();
			aktSchenkelUntenB.setActualValue(kommasse.getLuftUnten());
			aktSchenkelUntenB.setKey(kommasse.getUunten());		
			aktSchenkelUntenC = new Schenkel();
			aktSchenkelUntenC.setActualValue(kommasse.getLuftUnten());
			aktSchenkelUntenC.setKey(kommasse.getUunten());
		}
	}
}

Habe ein Bildl angehängt, damit das Ergebnis auch sichtbar wird.

Das Ganze könnte sicherlich auch viel besser gecodet werde, allein mein Begreifen von Java hindert mich dran, bin ja noch blutiger Anfänger.

Eines möchte ich noch loswerden:
In diesem Forum hier durfte ich immer wieder feststellen, dass sich Wissende um Unwissende - ohne herablassend zu sein - großartig kümmern - das ist leider nicht überall so.

Ohne das großartige Bemühen von Youza wäre ich nicht in der Lage gewesen, das Obige zu bewerkstelligen.
Habe durch seine Hilfe Java besser kennengelernt, kann darauf weiter aufbauen.
Deshalb nochmals vielen Dank an ihn.

So liebe Gemeinde, der obige Code funktioniert und ich würde mich über jeglichen Verbesserungsvorschlag freuen :)

Salü derweil
quidnovi
 

Anhänge

  • Ergebnis.png
    Ergebnis.png
    18,3 KB · Aufrufe: 2
So...nun habe ich leider ein weiteres Problem und zwar mit der Darstellung.

Das Ganze läuft klaglos, die Daten aus der DB werden in JComboBoxen richtig dargestellt.

Allerdings, wenn ich die Card schließe, welche diese Boxen anzeigt, und erneut aufrufe, dann werden die Daten wohl richtig dargestellt, nur habe ich pro Aufruf der Card, die Schenkeleinträge (20/20/20/2,...) mehrfach drin.
Also 3x in Folge aufrufen -> 3x 20/20/20/2, 30/20/30/2 und 40/20/40/2 untereinander in der selben Box.
Ebenso verhält es sich bei der 2 ComboBox, welche die dazupassenden int - Werte anzeigt (zB: 5 - 14, oder 5 - 24,...)
Zum besseren Verständnis habe ich eine Fotomontage angehängt.

Das Ganze hat - denke ich mit dem nicht - schließen der kompletten Anwendung zu tun.

Habe bereits versucht, in der Methode setActualSchenkels()
das zu tun:
Java:
aktSchenkelLinksA.setActualValue(0);
aktSchenkelLinksA.setKey(null);

Leider ohne den gewünschten Effekt.

Wie kann ich Java dazu bringen, beim neuerlichen Aufrufen dieser Card, nicht alles mehrfach anzuzeigen?

Bitte erklärt mir den Weg, respektive ein Beispiel, danke
quidnovi
 

Anhänge

  • pop1Un2.png
    pop1Un2.png
    27,2 KB · Aufrufe: 3
Gut ich seh du bastelst immer noch fleißig weiter :)

Ich habe deine Anwendung nochmal umgebaut und ein paar grapfische Dinge eingefügt dein Problem kann denke ich umgangen werden in dem du alle Items entfernst wenn du diese neu anordnen willst:
Java:
jcSchenkel.removeAllItems();

Dein Code ist leider etwas überladen nur irgendwie aktzepitert tutorials.de meinen Anhang nicht mehr am besten du machst mal einen neuen Thread auf für weiter fragen oder makierts den Thread nicht mehr als ereledigt vielleicht funktionierts dann wieder.

aussehen wird das Ganze dann wie folgt:
Schenkel_Editor.png

Viele Grüße
Youza

Also hochladen klappt immer noch nicht wenn einer das Projekt haben will einfach mich anschreiben mit E-mail Adresse ich send es dann zu sind so 2,18 MB
 
Zuletzt bearbeitet:
Hi Youza :)

Ja, ich weiß, dass mein Code überladen ist, leider fehlt mir noch das Wissen, es besser bewerkstelligen zu können :-(

Das mit dem
Java:
jcSchenkel.removeAllItems();
habe ich vor Deiner Hilfe schon probiert, nur hat's nicht funktioniert.

Habe einen Screenshot der ganzen Card angehängt, dann wird vielleicht die Komplexität besser ersichtlich.

Die Erkläre - so kurz wie möglich:
Das Ganze dreht sich um Glas.
Auf dieser Card kann man U - Profile und deren Einstände wählen - in die UProfile wird das Glas eingeführt.

Beispiel Rechts, Typ B:
Hier wurde die Schenkellänge mit 20 gewählt, das Glas wird nun 10mm in dieses Profil eingeschoben.

Es gibt da die genannten vier Seiten, links, rechts, oben und unten.

Man kann bei einer Seite alle drei Varianten wählen, A, B und C.
Je nach Wahl über den RadioButton rechts neben dem Bild, erscheint die betreffende Zeile mit den passenden JComboBoxen.
Und das natürlich für alle vier Seiten.
Das Ganze wird nun noch ein wenig komplizierter, da "C" keine Schenkel hat, nur die ComboBox mit dem "Wandabstand".

Das ist auch der Grund, warum der Code überladen ist.
Ich hoffe, dass ich mich jetzt klar ausgedrückt habe. :)

Vielen Dank für Deine Hilfe Youza :)
quidnovi

[edit]
Habe jetzt versucht, in der addItemsToComboBox - Methode das remove hinzuzufügen.
Dann kommt leider eine NPE.
Und zwar für: changeJcSchenkelTyp
Und:.itemStateChanged

Allerdings erst dann, wenn ich diese das 2. Mal aufrufe...
[/edit]
 

Anhänge

  • Screenshot.png
    Screenshot.png
    263,4 KB · Aufrufe: 8
Zuletzt bearbeitet:
Zurück