Разбор большого текста в текстовое поле, как установить позицию просмотра в начале текста

1

При синтаксическом анализе большого текста в этом случае "Все еще любить вас - Scorpions" для текстового поля выглядит так:> Изображение 174551. Я хочу, начните с начала. У вас также есть проблемы с полосой прокрутки, используйте JScrollPane в Jlist, и когда вам нужно прокрутить, потому что большой текст, при инициализации, он снимает прокрутку, это будет так, что я описал для текстового поля.

Введите этот код для текстового поля:

textField_1 = new JTextField();
        textField_1.setEditable(false);
        textField_1.setColumns(10);
        textField_1.setBounds(149, 33, 129, 20);
        frame.getContentPane().add(textField_1);

Рамка имеет абсолютную компоновку:

frame = new JFrame();
        frame.setBounds(100, 100, 317, 516);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
Теги:
swing

1 ответ

2
Лучший ответ

Вам просто нужно добавить эту строку:

textfield_1.setCaretPosition ( 0 );

Более того, нельзя использовать Absolute Positioning как можно больше.

Хотя можно обойтись без менеджера компоновки, вы должны использовать диспетчер компоновки, если это вообще возможно. Менеджер компоновки упрощает настройку на внешний вид компонентов, зависящих от внешнего вида, разных размеров шрифтов, размера контейнера и разных локалей. Менеджеры макетов также могут быть легко использованы другими контейнерами, а также другими программами

Для получения дополнительной информации см. Документ Absolute Positioning Doc

ИЗМЕНИТЬ 1:

Что касается JScrollPane

Это можно достичь двумя способами:

1. Используйте либо setPreferredSize (... ) на JScrollPane, например:

myList = new JList ( listData );
JScrollPane listScroller = new JScrollPane ();
listScroller.setViewportView ( myList );
listScroller.setPreferredSize ( new Dimension ( 100, 100 ) ) ;
contentPane.add ( listScroller );

2. Или можно переопределить getPreferredSize() для указанного JComponent, например:

myList = new JList ( listData );
JScrollPane listScroller = new JScrollPane () {
    @Override
    public Dimension getPreferredSize () {
        return new Dimension ( DIMENSION, DIMENSION );
    }
};
listScroller.setViewportView ( myList );
contentPane.add ( listScroller );
  • 0
    Я попробовал это сейчас, и потому что я не помещаю текст в инициализацию, мне нужно ставить каждое время анализа (время выполнения программы (получить текст из базы данных)), после этой строки, снова это (setCaretPosition), есть любое другое решение, например установить его только один раз при инициализации textField?
  • 0
    и если вы можете сказать мне, что я могу сделать со свитками?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню