JFrame, componentResized
Добавлено: 09 фев 2005, 01:36
У меня на фрейме есть JScrollBar hScrolll, я хочу, чтобы ширина была равна ширине окна. А вот-с не получается по человечески у меня это сделать ...
Идёт запаздывание на один шаг.
То есть изменения размера hScroll происходят, НО графика не перерисовывается!!
Я попробовал добавить в метод componentResized:
hScroll.repaint();
repaint();
то же самое.
Пробовал прописывать hScroll.setBounds(..) в методы
paint
repaint
setSize
setBounds
класса Matrix (после чего вызывал метод предка) - ничего не помогло.
В конце концов у меня получилось,
в метод componentResized я добавил строку:
По каким законам я устанавливаю булевую переменную resize - уже дело десятое, это специфика моего задания.
Просто после setSize заново делается перерисовка окна.
Кстати,
setSize(getWidth(),getHeight());
не проходит. Не будет рефреша.
Собственно вопрос:
Это ненормально, чтобы так происходили изменения..
Если кто-то знает, как это делается по людски - подскажите, пожалуйста.
P.S. На JScrollPane не посылать, скроллинг должен быть вверху!..
Код: Выделить всё
public class Matrix extends JFrame implements ComponentListener{
...
public void componentResized (ComponentEvent e) {
hScroll.setBounds(0, 0, getWidth(), 20);
}
То есть изменения размера hScroll происходят, НО графика не перерисовывается!!
Я попробовал добавить в метод componentResized:
hScroll.repaint();
repaint();
то же самое.
Пробовал прописывать hScroll.setBounds(..) в методы
paint
repaint
setSize
setBounds
класса Matrix (после чего вызывал метод предка) - ничего не помогло.
В конце концов у меня получилось,
в метод componentResized я добавил строку:
Код: Выделить всё
if (resize) setSize(getWidth()+1,getHeight()+1);
Просто после setSize заново делается перерисовка окна.
Кстати,
setSize(getWidth(),getHeight());
не проходит. Не будет рефреша.
Собственно вопрос:
Это ненормально, чтобы так происходили изменения..
Если кто-то знает, как это делается по людски - подскажите, пожалуйста.
P.S. На JScrollPane не посылать, скроллинг должен быть вверху!..