So, wie ich Dinge einrichten, ist, dass unter bestimmten Bedingungen möchte ich einen Listener aktiv sein, und nachdem es ausgelöst hat, hör auf Änderungen zu hören. Vielleicht vermisse ich etwas, aber ich kann nicht herausfinden, wie man die removeListener()
Funktion verwendet, oder ob das sogar der Weg ist, dies zu tun.So entfernen oder deaktivieren Sie einen Listener
Einige Code:
break1.setOnAction(e ->{
final String fieldValue = manage_money.getText();
int pp = Integer.parseInt(platinum_num.getText());
int gp = Integer.parseInt(gold_num.getText());
int sp = Integer.parseInt(silver_num.getText());
int cp = Integer.parseInt(copper_num.getText());
if (fieldValue != null && fieldValue.matches("\\d+")) {
int value = Integer.parseInt(manage_money.getText());
if (silver.isSelected()){
if (value <= sp){
try {
tooltip_inv.getChildren().addAll(select);
radio_money2.selectedToggleProperty().addListener(((observable, oldValue, newValue) -> {
if (newValue == copper){
silver_num.setText(Integer.toString(sp - value));
copper_num.setText(Integer.toString(cp + value * 10));
manage_money.clear();
tooltip_inv.getChildren().clear();
}
}));
} catch (IllegalArgumentException ex) {
}
}else{
manage_money.setText("ERR");
}
}
}else{
manage_money.setText("NaN");
}
});
Hey, danke! Ich hatte gedacht, dass ich so etwas machen musste, aber aus irgendeinem Grund konnte ich nicht herausfinden, wie ich einen Zuhörer auf diese Weise erschaffen konnte. – hego64
Sie können weiterhin Lambda-Anweisungen verwenden. – Mordechai
@MouseEvent Ja, Sie könnten immer noch Lambda-Anweisungen verwenden, aber ich dachte, dass dies klarer wäre, da es so aussah, als ob die Verwirrung von der Verwendung von Lambda-Statements kam, ohne ein klares Verständnis davon zu haben, was sie taten. – MMAdams