Autoscroll tekstu do prawej strony w TextField

Autoscroll tekstu do prawej strony w TextField
W2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

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ć?

title

W2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
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

Kopiuj
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 :)

Potat0x
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 372
1
Kopiuj
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");
    }
}
W2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

Dzięki, nie wiedzieć czemu ustawiałem to każdorazowo za pomocą setText .__.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.