1

JPanelに画像を表示したいのですが、JPanelにJSliderやJRadioButtonなどのコンポーネントも表示したいと思います。ご覧のとおり、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に追加すると、このコンポーネントの背景はデフォルトのままであり、背景画像ではありません。この画像をこのコンポーネントの背景として設定する方法がわかりません。案内してください。

よろしく

4

3 に答える 3

1

他のコンポーネントの不透明なプロパティをfalseに設定する必要があります。

jRadioButton.setOpaque(false);

例えば ​​:

ラジオボタンが付いたImagePanel。

于 2011-02-01T07:44:23.790 に答える
1
jRadioButton.setOpaque(false);

多くのルックアンドフィールで機能しますが、Nimbusで機能させたい場合は、背景色も透明に設定する必要があります。

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

詳細については、この質問を参照してください。

于 2011-02-01T17:14:03.770 に答える
0

setOpaque(false)他のすべてのコンポーネントは役に立ちませんか?

于 2011-02-01T07:39:48.257 に答える