Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Управление полосой прокрутки в JScrollPane / 6 сообщений из 6, страница 1 из 1
15.10.2007, 10:12:57
    #34868012
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление полосой прокрутки в JScrollPane
Всем привет, нужна помощь, ужо мозг сломал. Подскажите как сделать следующее. Есть 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
15.10.2007, 12:14:13
    #34868502
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление полосой прокрутки в JScrollPane
Попробуй http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/JTextComponent.html#setSelectionStart(int)
установить в длину строки содержимого. Ну и концом выделения тоже поиграйся
...
Рейтинг: 0 / 0
15.10.2007, 12:15:25
    #34868509
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление полосой прокрутки в JScrollPane
А, вот еще. Вторая ссылка в гугле на jtextarea:
http://forum.java.sun.com/thread.jspa?threadID=544890&tstart=0
...
Рейтинг: 0 / 0
15.10.2007, 12:24:13
    #34868552
Дуремар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление полосой прокрутки в JScrollPane
Код: plaintext
1.
2.
            textPane.setText(myText);
            textPane.setCaretPosition( 0 );
...
Рейтинг: 0 / 0
15.10.2007, 12:28:21
    #34868568
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление полосой прокрутки в JScrollPane
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
15.10.2007, 12:32:39
    #34868590
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление полосой прокрутки в JScrollPane
Дуремар
Код: plaintext
1.
2.
            textPane.setText(myText);
            textPane.setCaretPosition( 0 );
Воооо..... Спасибо помогло.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Управление полосой прокрутки в JScrollPane / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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