在JFrame中添加背景图,可是JPanel会覆盖JFrame中的背景图,请问如何将JPanel设为透明
查到setOpaque方法,但不起作用,代码如下。import java.awt.*;
import javax.swing.*;class MyPanel extends JPanel
{
public MyPanel(boolean horizontal)
{
if (horizontal)
{
setPreferredSize(new Dimension(0, 40));
}
else
{
setPreferredSize(new Dimension(40, 0));
}
//setBackground(Color.BLUE);
setOpaque(false);//不起作用
}
}public class Test extends JFrame
{
public Test()
{
add(new JButton("Test"));
add(new MyPanel(true), BorderLayout.NORTH);
add(new MyPanel(true), BorderLayout.SOUTH);
add(new MyPanel(false), BorderLayout.WEST);
add(new MyPanel(false), BorderLayout.EAST);
pack();
setVisible(true);
}
public void paint(Graphics g)
{
g.drawImage(getToolkit().getImage("back0.jpg"), 0, 0, getSize().width, getSize().height, this);
//super.paint(g);
paintComponents(g);
}
public static void main(String[] args)
{
new Test();
}
}
查到setOpaque方法,但不起作用,代码如下。import java.awt.*;
import javax.swing.*;class MyPanel extends JPanel
{
public MyPanel(boolean horizontal)
{
if (horizontal)
{
setPreferredSize(new Dimension(0, 40));
}
else
{
setPreferredSize(new Dimension(40, 0));
}
//setBackground(Color.BLUE);
setOpaque(false);//不起作用
}
}public class Test extends JFrame
{
public Test()
{
add(new JButton("Test"));
add(new MyPanel(true), BorderLayout.NORTH);
add(new MyPanel(true), BorderLayout.SOUTH);
add(new MyPanel(false), BorderLayout.WEST);
add(new MyPanel(false), BorderLayout.EAST);
pack();
setVisible(true);
}
public void paint(Graphics g)
{
g.drawImage(getToolkit().getImage("back0.jpg"), 0, 0, getSize().width, getSize().height, this);
//super.paint(g);
paintComponents(g);
}
public static void main(String[] args)
{
new Test();
}
}
是getCenterPanel().setOpaque(false)
import java.applet.*;
import java.awt.*;
import java.net.*;
import javax.swing.*;class MyPanel extends JPanel{
public MyPanel(){
setPreferredSize(new Dimension(100, 100));
setBackground(Color.BLUE);
//setOpaque(false);
}
}public class DrawImage extends Applet{
private Image image;
private JPanel panel; public void init(){
panel = new JPanel(new BorderLayout());
panel.add(new JButton("Test"), BorderLayout.CENTER);
panel.add(new MyPanel(), BorderLayout.NORTH);
panel.add(new MyPanel(), BorderLayout.SOUTH);
panel.add(new MyPanel(), BorderLayout.WEST);
panel.add(new MyPanel(), BorderLayout.EAST);
try{
image = getImage(new URL("http://avatar.profile.csdn.net/5/2/8/2_ufofind.jpg"));
}catch (Exception e){
e.printStackTrace();
}
add(panel);
setSize(500, 250);
setVisible(true);
} //public void paint(Graphics g){
//g.drawImage(image, 0, 0, this);
//}
}