Hallo Leute,
ich will eine Art Wahlzettel programmieren, bei dem man für verschiedene Parteien abstimmen kann. Jedes Mal, wenn eine Stimme hinzukommt, soll auch der prozentuale Anteil dieser Partei an den Gesamtstimmen aktualisiert werden.
Das Problem ist nun, dass bei der ersten Abstimmung alles funktioniert wie es soll und eine Partei nun 100% hat. Wird allerdings bei einer anderen Partei eine 2. Stimme abgegeben, wird der Prozentwert bei beiden zu 0% anstatt 50%. Die Stimmen für die einzelnen Parteien sowie der Gesamtwert bleiben dabei korrekt erhalten, nur das errechnete Prozentergebnis wird immer zu 0, obwohl es das nicht sollte.
cduBar etc. sind Progressbars, mit denen der Prozentanteil angezeigt wird.
Die void percentUpdate() wird beim Drücken eines zur jew. Partei gehörenden Buttons abgerufen:
Nirgends wird einer dieser Prozentwerte absichtlich auf 0 gesetzt, außer bei der Initalisierung, die allerdings definitiv nicht beim drücken der Buttons abgerufen wird.
Ich habe jetzt schon eine ganze Weile herumprobiert, konnte aber keine Lösung finden.
So sieht das Programm aus:

ich will eine Art Wahlzettel programmieren, bei dem man für verschiedene Parteien abstimmen kann. Jedes Mal, wenn eine Stimme hinzukommt, soll auch der prozentuale Anteil dieser Partei an den Gesamtstimmen aktualisiert werden.
Das Problem ist nun, dass bei der ersten Abstimmung alles funktioniert wie es soll und eine Partei nun 100% hat. Wird allerdings bei einer anderen Partei eine 2. Stimme abgegeben, wird der Prozentwert bei beiden zu 0% anstatt 50%. Die Stimmen für die einzelnen Parteien sowie der Gesamtwert bleiben dabei korrekt erhalten, nur das errechnete Prozentergebnis wird immer zu 0, obwohl es das nicht sollte.
Java:
public void percentUpdate() {
totalCount = spdCount + cduCount + grueneCount + linkeCount + fdpCount;
cduPercent = (cduCount / totalCount) * 100;
spdPercent = (spdCount / totalCount) * 100;
gruenePercent = (grueneCount / totalCount) * 100;
linkePercent = (linkeCount / totalCount) * 100;
fdpPercent = (fdpCount / totalCount) * 100;
cduBar.setValue(cduPercent);
spdBar.setValue(spdPercent);
grueneBar.setValue(gruenePercent);
linkeBar.setValue(linkePercent);
fdpBar.setValue(fdpPercent);
}
cduBar etc. sind Progressbars, mit denen der Prozentanteil angezeigt wird.
Die void percentUpdate() wird beim Drücken eines zur jew. Partei gehörenden Buttons abgerufen:
Java:
private void spdButtonActionPerformed(java.awt.event.ActionEvent evt) {
spdCount ++;
spdOutput.setText(spdOutput.getText().valueOf(spdCount));
percentUpdate();
}
private void cduButtonActionPerformed(java.awt.event.ActionEvent evt) {
cduCount ++;
cduOutput.setText(cduOutput.getText().valueOf(cduCount));
percentUpdate();
}
Ich habe jetzt schon eine ganze Weile herumprobiert, konnte aber keine Lösung finden.
So sieht das Programm aus:
