Java анимация и цвет фона

1

Я создаю анимацию в нижнем слое JFrame. Я хочу изменить цвет фона JFrame, но он не меняется. В настоящий момент анимация воспроизводится, и мне разрешено перемещать свой JFrame, но цвет фона JFrame по умолчанию светло-серый.

        mover = new javax.swing.JPanel(); // allows me to move the JFrame, also it acts as the colored background of the JFrame

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setUndecorated(true);
        getContentPane().setLayout(null);

        mover.setBackground(new java.awt.Color(51, 51, 51)); // dark gray color
        mover.setBorder(new javax.swing.border.MatteBorder(null));

        javax.swing.GroupLayout moverLayout = new javax.swing.GroupLayout(mover);
        mover.setLayout(moverLayout);
        moverLayout.setHorizontalGroup(
            moverLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 698, Short.MAX_VALUE)
        );
        moverLayout.setVerticalGroup(
            moverLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 498, Short.MAX_VALUE)
        );

        getContentPane().add(mover);
        mover.setBounds(0, 0, 700, 500);

        pack();

Я не уверен, сколько еще информации вам нужно, чтобы помочь мне, поскольку я не уверен, где проблема.

Вот мой двойной буферный код в случае необходимости

@Override
    public void paint(Graphics g) {
        dbImage = createImage(getWidth(), getHeight());
        dbg = dbImage.getGraphics();
        draw(dbg);
        g.drawImage(dbImage, 0, 0, this);
    }

    public void draw(Graphics g) {
        b.draw(g);
        repaint();
    }
  • 0
    Как вы пытались установить цвет фона?
  • 0
    Чтобы быстрее помочь, опубликуйте MCVE (минимальный, полный, проверяемый пример).
Теги:
colors
swing
jframe
paint

1 ответ

0

Убедившись, что ваша панель имеет прозрачность, JPanel.setOpaque(boolean) true (JPanel.setOpaque(boolean)), переопределите paintComponent(Graphics g) вместо paint(Graphics g) и вызовите super.paintComponent(g) качестве вашего первого оператора. Настройка непрозрачности гарантирует, что ваш фон будет окрашен.

Ещё вопросы

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