JPanel изображение и компоненты - PullRequest
1 голос
/ 01 февраля 2011

Я хотел бы иметь изображение на моих JPanels и также иметь такие компоненты, как JSlider и JRadioButton на моем JPanelКак вы видите, я получил класс из JPanel и переопределил метод paintComponent.Это хороший способ иметь изображение на JPanel.

public void paintComponent(Graphics g)
{
    /*create image icon to get image*/
    ImageIcon imageicon = new ImageIcon(imageFile); //getClass().getResource(imageFile)
    Image image = imageicon.getImage();

    /*Draw image on the panel*/
    super.paintComponent(g);

    if (image != null)
        g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}

Однако у меня есть некоторые проблемы.Когда я добавляю компоненты, такие как JSlider, JRadioButton или другой JPanel, на мою ImagePanel;фон этого компонента остается по умолчанию, а не фоновое изображение.Я не знаю, как установить это изображение в качестве фона этих компонентов.пожалуйста, ведите меня.

С уважением

Ответы [ 3 ]

1 голос
/ 01 февраля 2011

Вы должны установить непрозрачные свойства другого компонента в false.

jRadioButton.setOpaque(false);

например:

ImagePanel with RadioButton on it.

1 голос
/ 01 февраля 2011
jRadioButton.setOpaque(false);

Будет работать для многих типов, но если вы хотите, чтобы он работал с Nimbus, вы должны также установить прозрачный цвет фона:

jRadioButton.setBackground(new Color(0,0,0,0));

См. этовопрос для более подробной информации.

0 голосов
/ 01 февраля 2011

Разве setOpaque(false) для всех остальных компонентов не помогает?

...