Hallo,
Im Zuge unserer Gruppenprojekts haben wir ein Problem mit einer Variable, die nicht, wie gewünscht überschrieben wird.
Genutzt wird (falls es jemand kennt), das Framework SalesPoint
Da die Klassen untereinander große Abhängigkeiten besitzen und wir die Klassen des Framesworks selbst nicht einsehen können, poste ich hier nur ein vereinfachtes Beispiel.
Ich hoffe, dass das Beispiel halbwegs das Problem zeigt:
Folgende Fakten dazu:
- der JTable funktioniert einwandfrei und wird korrekt ausgegeben;
- die variable changeVar wird in der Konsole als korrekt ausgegeben (über System.out.println(changeVal)...egal an welcher Stelle.
- wir können keinen Konstruktor schreiben (Framework)
- an den offenbar irgendwo vorhandenen Konstruktor kommen wir nicht rein(Framework)
Fehler der Auftritt:
- changeVar behällt den anfangs deklarierten wert. Im hier genannten Beispiel wäre changeVar = 0;
Initialisieren wir es als irgendetwas anderes, so behällt changeVar leider seinen vorgegebenen Wert und wird nicht korrekt überschrieben.
Das führt dazu, dass immer die selbe Person in einer Liste ausgewählt wird (nämlich deren Index vorher initialisert wurde). Die Auswahl der Person selbst und die nächste GUI, die wir im Zuge dessen nutzen, ist Framework-intern, funktioniert aber, für den Index (der leider nicht überschrieben wird)
Unsere Ideen, woran es liegen könnte
- Überschreiben der Klassenvariablen funktioniert in dieser internen Methode nicht (haben es mit einem Setter versucht, aber es hat nichts an der Var geändert... Werte im Setter waren korrekt)
Setter war von der Form
- irgendwo wird eine neue Instanz von ContentCreatorPersonAnzeigen erzeugt ... dies geschieht aber nicht in den von uns geschriebenen Klassen und wir wissen auch nicht, wie wir das nachprüfen oder umgehen könnten;
Wir bitte Euch da um Hilfe. Wäre echt klasse, wenn wir da einen entscheidenden Gedankenanstoß bekommen.
LG
Moch
Im Zuge unserer Gruppenprojekts haben wir ein Problem mit einer Variable, die nicht, wie gewünscht überschrieben wird.
Genutzt wird (falls es jemand kennt), das Framework SalesPoint
Da die Klassen untereinander große Abhängigkeiten besitzen und wir die Klassen des Framesworks selbst nicht einsehen können, poste ich hier nur ein vereinfachtes Beispiel.
Java:
public class ContentCreatorPersonenAnzeigen {
//Ist die Variable, die geändert werden soll;
int changeVal;
JTable person;
@override
protected void createFormSheetContent(Formsheet fs){
person.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );
person.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
changeVal = person.getSelectedRow();
System.out.println(changeVal); // Der Wert ist immer korrekt;
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
}
Ich hoffe, dass das Beispiel halbwegs das Problem zeigt:
Folgende Fakten dazu:
- der JTable funktioniert einwandfrei und wird korrekt ausgegeben;
- die variable changeVar wird in der Konsole als korrekt ausgegeben (über System.out.println(changeVal)...egal an welcher Stelle.
- wir können keinen Konstruktor schreiben (Framework)
- an den offenbar irgendwo vorhandenen Konstruktor kommen wir nicht rein(Framework)
Fehler der Auftritt:
- changeVar behällt den anfangs deklarierten wert. Im hier genannten Beispiel wäre changeVar = 0;
Initialisieren wir es als irgendetwas anderes, so behällt changeVar leider seinen vorgegebenen Wert und wird nicht korrekt überschrieben.
Das führt dazu, dass immer die selbe Person in einer Liste ausgewählt wird (nämlich deren Index vorher initialisert wurde). Die Auswahl der Person selbst und die nächste GUI, die wir im Zuge dessen nutzen, ist Framework-intern, funktioniert aber, für den Index (der leider nicht überschrieben wird)
Unsere Ideen, woran es liegen könnte
- Überschreiben der Klassenvariablen funktioniert in dieser internen Methode nicht (haben es mit einem Setter versucht, aber es hat nichts an der Var geändert... Werte im Setter waren korrekt)
Setter war von der Form
Java:
public void setChangeVar(int changeVar){
this.changeVar = changeVar;
}
- irgendwo wird eine neue Instanz von ContentCreatorPersonAnzeigen erzeugt ... dies geschieht aber nicht in den von uns geschriebenen Klassen und wir wissen auch nicht, wie wir das nachprüfen oder umgehen könnten;
Wir bitte Euch da um Hilfe. Wäre echt klasse, wenn wir da einen entscheidenden Gedankenanstoß bekommen.
LG
Moch