Używam JScrollPane, aby umożliwić przewijanie w JFrame, który ma składnik tekstowy, który służy jako edytor tekstu. Po ustawieniu tekstu w tym edytorze chcę go przewinąć z powrotem do góry, abyś mógł zobaczyć, co jest na początku pliku.
Czy ktoś wie, jak to zrobić?
Na wypadek, gdybyś nie korzystał z komponentu tekstowego, spójrz na zamieszczony tutaj wątek .... Ustawianie paska przewijania w JScrollPane
Ich rozwiązaniem jest wyodrębnienie wątku za pomocą invokeLater
final JScrollPane scroll = new JScrollPane(text); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { scroll.getVerticalScrollBar().setValue(0); } });
źródło
invokeLater
nie wydziela wątku, po prostu kolejkuje zdarzenie, które ma być wykonane po bieżącym zdarzeniu (np. kliknięciu przycisku lub jakimkolwiek kontekście wywoływanego koduinvokeLater
) i zakończeniu innych już zakolejkowanych zdarzeń.To sprawi, że praca:
źródło
Możesz użyć tej metody
setCaretPosition(0)
zaraz posetText(String t)
komponencie tekstowym.źródło
Użyj JComponent.scrollRectToVisible ()
Jeśli potrzebujesz więcej informacji, oto artykuł
źródło
Możesz spróbować tego:
scrollPane.getViewport().setViewPosition(new Point(0,0));
Zgodnie z JavaDocs setViewPosition () zachowuje się następująco:
źródło
Oto jak:
textArea.setSelectionStart(0); textArea.setSelectionEnd(0);
źródło