java - Alert message for oversteping maximum integer in spinner -
anzahlled.setvaluefactory(new spinnervaluefactory.integerspinnervaluefactory(1, 3, 1)); changelistener<integer> ledlistener = new changelistener<integer>() { @override public void changed(observablevalue<? extends integer> observable, integer oldvalue, integer newvalue) { if (newvalue == 1 && oldvalue == 2) { secondledcombo.setdisable(true); secondledtextuf.setdisable(true); secondledtextif.setdisable(true); if (schaltung.getselectionmodel().getselecteditem().equals("parallelschaltung")) { // } else if (schaltung.getselectionmodel().getselecteditem().equals("reihenschaltung")) { secondledtextuf.settext(null); secondledtextif.settext(null); } } if (newvalue == 2 && oldvalue == 1) { secondledcombo.setdisable(false); secondledtextuf.setdisable(false); if (schaltung.getselectionmodel().getselecteditem().equals("parallelschaltung")) { secondledtextif.setdisable(false); } else if (schaltung.getselectionmodel().getselecteditem().equals("reihenschaltung")) { secondledtextif.settext(firstledtextif.gettext()); } } if (newvalue == 2 && oldvalue == 3) { thirdledcombo.setdisable(true); thirdledtextuf.setdisable(true); thirdledtextif.setdisable(true); if (schaltung.getselectionmodel().getselecteditem().equals("parallelschaltung")) { // } else if (schaltung.getselectionmodel().getselecteditem().equals("reihenschaltung")) { secondledtextif.setdisable(true); thirdledtextuf.settext(null); thirdledtextif.settext(null); } } if (newvalue == 3 && oldvalue == 2) { thirdledcombo.setdisable(false); thirdledtextuf.setdisable(false); if (schaltung.getselectionmodel().getselecteditem().equals("parallelschaltung")) { thirdledtextif.setdisable(false); } else if (schaltung.getselectionmodel().getselecteditem().equals("reihenschaltung")) { thirdledtextif.settext(firstledtextif.gettext()); } } } }; i have problem want have message if want go 3 4. can see, have 1, 2,3 in spinner. want alert pops when user tries choose 4. idea change maximum 4 , check , decrement number again while creating alert. doesn't work, because decrementing triggers listener before changing, , have endless loop.
can tell me how can have pop alert when try choose 4?
this isn't robust, can use lookup increment button, , register listener it. if register event filter mouse pressed, catches before value changed.
import javafx.application.application; import javafx.scene.scene; import javafx.scene.control.alert; import javafx.scene.control.spinner; import javafx.scene.control.alert.alerttype; import javafx.scene.input.mouseevent; import javafx.scene.layout.stackpane; import javafx.stage.stage; public class spinnertest extends application { @override public void start(stage primarystage) { spinner<integer> spinner = new spinner<>(1, 3, 1); scene scene = new scene(new stackpane(spinner), 180, 80); spinner.applycss(); spinner.lookup(".increment-arrow-button").addeventfilter(mouseevent.mouse_pressed, e -> { if (spinner.getvalue().intvalue() == 3) { alert alert = new alert(alerttype.information); alert.setcontenttext("maximum 3"); alert.showandwait(); } }); primarystage.setscene(scene); primarystage.show(); } public static void main(string[] args) { launch(args); } }
Comments
Post a Comment