Заставить JPanel перерисовываться при изменении размера подкомпонентаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Заставить JPanel перерисовываться при изменении размера подкомпонента

Сообщение Anonymous »

Я разрабатываю игру Java Swing, в которой JPanel отображает информацию, связанную с игрой, а на эту панель накладывается меню, в котором некоторые кнопки не всегда видны.
Проблема: когда кнопка скрыта, фоновая панель не перерисовывается должным образом.
Упрощенный код:

Код: Выделить всё

public class MyPanel extends JPanel { // This is where I draw game-related stuff in the background

public MyPanel() {
JPanel toolPanel = new JPanel();
this.add(toolPanel, BorderLayout.SOUTH);
}
}

public class ToolPanel extends JPanel { // This panel holds the buttons overlaid onto MyPanel

Color transparent = new Color(255, 255, 255, 0);
toolPanel.setForeground(transparent);
toolPanel.setBackground(transparent);

JButton mainButton = new JButton("main button");
toolPanel.add(mainButton);

JButton subButton = new JButton("sub-button");
toolPanel.add(subButton);
subButton.setVisible(false);

mainButton.addActionListener((e) -> {
subButton.setVisible(!subButton.isVisible());
System.out.println("Setting sub-button to " + subButton.isVisible());
// repaint();
// invalidate(); // None of these can force the parent JPanel to repaint...
});

}
Что я имею после инициализации:
нормальное состояние
Что я получаю, когда показываю вторую кнопку:
фон подпанель нарисована неправильно
И когда я сделал вторую кнопку невидимой (я ожидаю вернуться к первому изображению):
основная кнопка в порядке, панель кнопок фон нокаут

Подробнее здесь: https://stackoverflow.com/questions/790 ... nt-resizes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Заставить JPanel перерисовываться при изменении размера подкомпонента
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Заставить JPanel перерисовываться при изменении размера подкомпонента
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • C# Как заставить скрытое окно продолжать перерисовываться и быть готовым к быстрому отображению?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Как заставить QWidget перерисовываться?
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Как заставить QWidget перерисовываться?
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»