В GXT я ' У нас есть элемент управления с важной панелью, добавленной к нижнему компоненту, примерно так:
public class SamplePanel extends ContentPanel {
ContentPanel panel = new ContentPanel();
public SamplePanel() {
setBottomComponent(panel);
}
public void setVisible(boolean isVisible) {
panel.setVisible(isVisible);
}
Панель устанавливается как «нижний компонент», потому что она должна оставаться внизу виджета и быть видимой в любое время.
Проблема в том, что, хотя видимость панели переключается правильно, область "нижнего компонента" не изменяется, чтобы стать меньше и соответствовать новым размерам нижней области.
Однако я заметил, что нижняя область не меняет размер, когда я вручную изменяю размер виджета с помощью мыши.
Есть ли способ программно принудительно перерисовать / перерисовать / повторно разметить ... что-нибудь, чтобы изменить нижний компонент, чтобы отразить новый размер его содержимого?
Я пробовал все это, но они не работают:
public void setVisibility(boolean isVisible) {
panel.setVisible(isVisible);
doLayout(true);
recalculate();
repaint();
}
Спасибо