java - how to use javafx textfield maxlength -
how use code in main class of javafx. can set maxlength of characters in javafx texfield.
class limitedtextfield extends textfield { private final int limit; public limitedtextfield(int limit) { this.limit = limit; } @override public void replacetext(int start, int end, string text) { super.replacetext(start, end, text); verify(); } @override public void replaceselection(string text) { super.replaceselection(text); verify(); } private void verify() { if (gettext().length() > limit) { settext(gettext().substring(0, limit)); } } }; my java fx main class given below
public class textfiled extends application { @override public void start(stage primarystage) { final textfield t_fname = new textfield(); stackpane root = new stackpane(); root.getchildren().add(t_fname); scene scene = new scene(root, 300, 250); primarystage.settitle("hello world!"); primarystage.setscene(scene); primarystage.show(); } public static void main(string[] args) { launch(args); } }
this solution:
public static void addtextlimiter(final textfield tf, final int maxlength) { tf.textproperty().addlistener(new changelistener<string>() { @override public void changed(final observablevalue<? extends string> ov, final string oldvalue, final string newvalue) { if (tf.gettext().length() > maxlength) { string s = tf.gettext().substring(0, maxlength); tf.settext(s); } } }); } see javafx 2.2 textfield maxlength , prefer composition on inheritance?
Comments
Post a Comment