Hey,
es geht um ein Anfang einer Java-Anwendung und zwar, habe ich 2 Klassen.
1.Klasse enthält die GUI (die mit Hilfe von Windowbuilder erstellt wurde)
2.Klasse sollte die Berechnung durchführen
Also es gibt bis jetzt nur CheckBox(13 Stück) und ein Button. Man wählt also verschiedene CheckBox's und drückt auf den Button:
Hier wird abgefragt welche und wie viele CheckBox ausgewählt wurden,
Bauhaus.getBauelemente() und andere if's benutzen die Methode isSelected()
Nun sollte eine ArrayList(chromosom) die ausgewählten CheckBox's mit ihren Namen(String) speichern.
Diese ArrayList sollte vermischt werden(mit Collections.shuffle(list)).
Nach dem mischen kommen noch 2 Strings am Anfang und am Ende der ArrayList.
Dann soll diese vermischte ArrayList in eine andere ArrayList gespeichert werden, die am Anfang/Ende eingefügten Strings wieder gelöscht werden und wieder gemischt usw. 100 mal.
So sollte am ende eine ArrayList mit 100 ArrayListen erstellt werden.
Doch beim Testen und Ausgeben wird eine ArrayList mit 100 ArrayListen erstellt, in den immer die 100 selben(selbe Reihenfolge) Strings vorhanden sind.
Das Problem liegt wahrscheinlich irgendwo in den globalen Variablen oder an static, aber er will ohne static die zwei Klassen nicht verwalten, gibt immer Fehler an.
p.s. Ich arbeite mit Eclipse
es geht um ein Anfang einer Java-Anwendung und zwar, habe ich 2 Klassen.
1.Klasse enthält die GUI (die mit Hilfe von Windowbuilder erstellt wurde)
2.Klasse sollte die Berechnung durchführen
Also es gibt bis jetzt nur CheckBox(13 Stück) und ein Button. Man wählt also verschiedene CheckBox's und drückt auf den Button:
Java:
btnWegBerechnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//Berechnung ist die 2.Klasse
Berechnung.abteilungen();
Berechnung.anzAbteilungen = 0;
Berechnung.chromosom.clear();
Berechnung.population.clear();
}
});
Hier wird abgefragt welche und wie viele CheckBox ausgewählt wurden,
Bauhaus.getBauelemente() und andere if's benutzen die Methode isSelected()
Java:
public class Berechnung {
static int anzAbteilungen = 0;
static ArrayList<String> chromosom = new ArrayList<String>();
static ArrayList<Object> population = new ArrayList<Object>();
public static void abteilungen(){
if(Bauhaus.getBauelemente()){
chromosom.add(Bauhaus.bauelemente.getText());
anzAbteilungen++;
};
if(Bauhaus.getBaustoffe()){
chromosom.add(Bauhaus.baustoffe.getText());
anzAbteilungen++;
};
if(Bauhaus.getEisenwaren()){
chromosom.add(Bauhaus.eisenwaren.getText());
anzAbteilungen++;
};
if(Bauhaus.getElektroinstallation()){
chromosom.add(Bauhaus.elektroinstallation.getText());
anzAbteilungen++;
};
if(Bauhaus.getElektroLeuchten()){
chromosom.add(Bauhaus.elektroLeuchten.getText());
anzAbteilungen++;
};
if(Bauhaus.getFarbenTapetenGalerie()){
chromosom.add(Bauhaus.farbenTapetenGalerie.getText());
anzAbteilungen++;
};
if(Bauhaus.getFliesen()){
chromosom.add(Bauhaus.fliesen.getText());
anzAbteilungen++;
};
if(Bauhaus.getParkettLaminatPaneele()){
chromosom.add(Bauhaus.parkettLaminatPaneele.getText());
anzAbteilungen++;
};
if(Bauhaus.getSanitaerSanitaerinstallation()){
chromosom.add(Bauhaus.sanitaerSanitaerinstallation.getText());
anzAbteilungen++;
};
if(Bauhaus.getSchreinerei()){
chromosom.add(Bauhaus.schreinerei.getText());
anzAbteilungen++;
};
if(Bauhaus.getStadtgarten()){
chromosom.add(Bauhaus.stadtgarten.getText());
anzAbteilungen++;
};
if(Bauhaus.getTeppicheInnendeko()){
chromosom.add(Bauhaus.teppicheInnendeko.getText());
anzAbteilungen++;
};
if(Bauhaus.getWerkzeugeMaschinen()){
chromosom.add(Bauhaus.werkzeugeMaschinen.getText());
anzAbteilungen++;
};
Nun sollte eine ArrayList(chromosom) die ausgewählten CheckBox's mit ihren Namen(String) speichern.
Diese ArrayList sollte vermischt werden(mit Collections.shuffle(list)).
Nach dem mischen kommen noch 2 Strings am Anfang und am Ende der ArrayList.
Dann soll diese vermischte ArrayList in eine andere ArrayList gespeichert werden, die am Anfang/Ende eingefügten Strings wieder gelöscht werden und wieder gemischt usw. 100 mal.
Java:
ArrayList<String> chrom = new ArrayList<String>();
for(int j=0; j<100; j++){
Collections.shuffle(chromosom);
chromosom.add(0, "Eingang");
chromosom.add(chromosom.size(),"Ausgang");
chrom = chromosom;
population.add(chrom);
chromosom.remove(0);
chromosom.remove("Ausgang");
}
So sollte am ende eine ArrayList mit 100 ArrayListen erstellt werden.
Doch beim Testen und Ausgeben wird eine ArrayList mit 100 ArrayListen erstellt, in den immer die 100 selben(selbe Reihenfolge) Strings vorhanden sind.
Das Problem liegt wahrscheinlich irgendwo in den globalen Variablen oder an static, aber er will ohne static die zwei Klassen nicht verwalten, gibt immer Fehler an.
p.s. Ich arbeite mit Eclipse
Zuletzt bearbeitet: