Mam w moim programie pole TextField, do którego wprowadza się znaki za pomocą odpowiednich buttonów (tekst wskakuje od prawej strony). Jednak w momencie przepełnienia tego pola, tekst po prostu ucieka poza pole i muszę ręcznie go przewinąć żeby zobaczyć co wpisałem na końcu. Chciałbym żeby tekst automatycznie przewijał się w momencie przepełnienia pola i chował z lewej strony, tak by ostatni napisany znak zawsze był przy prawej krawędzi pola. Jak mogę takiego cudu dokonać?
0
1
Udało mi się obejść ten problem, nie jest to jednak idealne rozwiązanie. Dodałem następującą linię do każdej z metod obsługujących zdarzenia buttonów
mainField.positionCaret(mainField.getText().length());
Jeśli ma ktoś jakiś lepszy sposób na uzyskanie tego efektu to będę wdzięczny za podzielenie się nim :)
1
public class Controller {
@FXML
public TextField tf;
@FXML
public void initialize() {
tf.setAlignment(Pos.CENTER_RIGHT);
}
@FXML
public void fooA(ActionEvent actionEvent) {
tf.appendText("a");
}
@FXML
public void fooB(ActionEvent actionEvent) {
tf.appendText("b");
}
}
0
Dzięki, nie wiedzieć czemu ustawiałem to każdorazowo za pomocą setText .__.