Rozszerzanie kontrolek w javaFX

0

Witam.
Jak w javieFX można dodawać do kontrolek własne metody, żeby np. do textField'a można było wprowadzać tylko liczby?

Szukałem w google/dokumentacji i mam cos takiego:

 public class NumberTextField extends TextField {	
	
	@Override
	public void replaceText(int start, int end, String text){
		if (validate(text)) {
			super.replaceText(start, start, text);
		}
	}
	
	@Override
	public void replaceSelection(String text){
		if (validate(text)) {
			super.replaceSelection(text);
		}
	}	
	
	private boolean validate(String text){
		return (text.equals("")) || (text.matches("[0-9]"));
	}	
}

Teraz w kontrolerze widoku chce go dodać na zasadzie

 @FXML
private NumberTextField textField;

w pliku .fxml jest dodany po prosu zwykły textField któremu nadaje to id i w tym miejscu wywala błąd
You can not assign 'TextField' to the controller field 'NumberTextField'

I teraz mam pytanie jak to zrobić zeby działało? ;)

0

Jeśli w pliku fxml masz TextField, to nie możesz przypisać tego do NumberTextField. Nie działa to w tę stronę. To, co chcesz zrobić, jest opisane tutaj:
http://docs.oracle.com/javafx/2/fxml_get_started/custom_control.htm

0

Niestety, jeśli w FXML dodałeś kontrolkę określonego typu to w kontrolerze musisz użyć tego samego. Natomiast nic nie stoi na przeszkodzie, aby dodać obsługę zdarzenia zmiany tekstu, lub litenera na textProperty i tam zrobić sobię wymaganą przez Ciebie obsługę wprowadzania tekstu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1