powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Управление полосой прокрутки в JScrollPane
6 сообщений из 6, страница 1 из 1
Управление полосой прокрутки в JScrollPane
    #34868012
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, нужна помощь, ужо мозг сломал. Подскажите как сделать следующее. Есть JTextPane который находиться в JScrollPane, иногда данные в этом JTextPane меняються, нужно сделать чтобы полоса прокрутки устанавливалась на начало.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
 public   class  Test  extends  JFrame {

     static   final  String SOURCE = "1\n2\n3\n4\n5\n6\n7\n8\n9\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n0\n";

     public  Test() {

         final  JTextPane text =  new  JTextPane();
        text.setText(SOURCE);

         final  JScrollPane pane =
                 new  JScrollPane(text, VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_AS_NEEDED);

        Action action =  new  AbstractAction() {
             public   void  actionPerformed(ActionEvent e) {
                text.setText(SOURCE);
//                первый вариант, не помогает
//                pane.getViewport().setViewPosition(new Point(0, 0));

//                второй вариант, не помогает
//                pane.getVerticalScrollBar().setValue(0);

//                третий вариант, работает но только на этом тесте
//                в рабочем коде не помогает
                Caret caret = text.getCaret();
                caret.setDot( 0 );
                caret.moveDot( 0 );
            }
        };

        action.putValue(Action.NAME, "Change");

        Container container = getContentPane();
        container.add(pane, CENTER);
        container.add( new  JButton(action), SOUTH);
    }

     public   static   void  main(String[] args) {
        JFrame frame =  new  Test();
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setSize( 300 ,  240 );
        frame.setVisible(true);
    }
}
...
Рейтинг: 0 / 0
Управление полосой прокрутки в JScrollPane
    #34868502
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/JTextComponent.html#setSelectionStart(int)
установить в длину строки содержимого. Ну и концом выделения тоже поиграйся
...
Рейтинг: 0 / 0
Управление полосой прокрутки в JScrollPane
    #34868509
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, вот еще. Вторая ссылка в гугле на jtextarea:
http://forum.java.sun.com/thread.jspa?threadID=544890&tstart=0
...
Рейтинг: 0 / 0
Управление полосой прокрутки в JScrollPane
    #34868552
Дуремар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
            textPane.setText(myText);
            textPane.setCaretPosition( 0 );
...
Рейтинг: 0 / 0
Управление полосой прокрутки в JScrollPane
    #34868568
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
setSelectionStart(int) и setSelectionEnd(int) это фактически вызов getCaret().getDot(), getCaret().moveDot()

но помог поиск по форуму, сделал так
Код: plaintext
1.
2.
3.
4.
5.
        Runnable runnable =  new  Runnable() {
             public   void  run() {
                pane.getViewport().setViewPosition( new  Point( 0 ,  0 ));
            }
        };
        SwingUtilities.invokeLater(runnable);
...
Рейтинг: 0 / 0
Управление полосой прокрутки в JScrollPane
    #34868590
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дуремар
Код: plaintext
1.
2.
            textPane.setText(myText);
            textPane.setCaretPosition( 0 );
Воооо..... Спасибо помогло.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Управление полосой прокрутки в JScrollPane
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]