下面是我的代码,一旦加载了panel2,一开始加载的图片就不能显示了,看论坛上大家都用
setOpaque(false);
但我发现根本不起作用,请高手帮忙看看。多谢!
import javax.swing.*;import java.awt.*;public class BackGround extends JFrame{ Container content; Toolkit toolkit; JLabel bkLabel = new JLabel();// 背景图片标签 JLabel horseLabel = new JLabel(); JButton bButton; int screenWidth, screenHeight, WIDTH, HEIGHT; ImageIcon backImage, bImage; BackGround(){
content = getContentPane(); toolkit = Toolkit.getDefaultToolkit(); screenWidth = toolkit.getScreenSize().width; screenHeight = toolkit.getScreenSize().height;
bImage = new ImageIcon("pic/logo.jpg");
backImage = new ImageIcon("pic/background.gif");
bkLabel.setIcon(backImage);
bkLabel.setOpaque(true); WIDTH = backImage.getIconWidth(); HEIGHT = backImage.getIconHeight(); content.add(bkLabel,-1);// 添加背景图片 bButton = new JButton(bImage); JPanel panel2 = new JPanel(); panel2.setOpaque(false);// 设置panel2背景透明 panel2.setPreferredSize(new Dimension(40, 40));
panel2.add(bButton);
content.add(panel2);
validate(); setBounds(300,200,WIDTH,HEIGHT); setLocation((screenWidth - WIDTH) / 2, (screenHeight - HEIGHT) / 2); setSize(WIDTH, HEIGHT); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new BackGround(); }}
setOpaque(false);
但我发现根本不起作用,请高手帮忙看看。多谢!
import javax.swing.*;import java.awt.*;public class BackGround extends JFrame{ Container content; Toolkit toolkit; JLabel bkLabel = new JLabel();// 背景图片标签 JLabel horseLabel = new JLabel(); JButton bButton; int screenWidth, screenHeight, WIDTH, HEIGHT; ImageIcon backImage, bImage; BackGround(){
content = getContentPane(); toolkit = Toolkit.getDefaultToolkit(); screenWidth = toolkit.getScreenSize().width; screenHeight = toolkit.getScreenSize().height;
bImage = new ImageIcon("pic/logo.jpg");
backImage = new ImageIcon("pic/background.gif");
bkLabel.setIcon(backImage);
bkLabel.setOpaque(true); WIDTH = backImage.getIconWidth(); HEIGHT = backImage.getIconHeight(); content.add(bkLabel,-1);// 添加背景图片 bButton = new JButton(bImage); JPanel panel2 = new JPanel(); panel2.setOpaque(false);// 设置panel2背景透明 panel2.setPreferredSize(new Dimension(40, 40));
panel2.add(bButton);
content.add(panel2);
validate(); setBounds(300,200,WIDTH,HEIGHT); setLocation((screenWidth - WIDTH) / 2, (screenHeight - HEIGHT) / 2); setSize(WIDTH, HEIGHT); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new BackGround(); }}
解决方案 »
- 欲求一条MySQL的sql语句
- 责任链模式代码写了70%,卡住了,关于比武的小例子。
- 取ORACLE数据库中的LONG类型,用什么?rs.getlong?不对吧?
- 请问兄弟们这个SQL怎么写
- 求问,java如何创建和读取制定编码的文件
- JPanel中的控件(JLabel)的焦点的获得顺序可以设置吗? requestFocus()
- cnn.commit作用是什么?
- 怎样取得当前系统的字符编码?
- 请问jdk里面的classpath在哪里设置?
- 大家对绘图技术不感兴趣嘛!那就讨论一下网络吧!请问如何通过http访问远程对象。
- java sound api
- 有时用的if..else太多,大家觉得改成这样如何?
class ImagePane extends JPanel
{ Image bj;
Toolkit tool;
tool=getToolkit();
bj=tool.getImage("chgbj.gif");
public void paintComponent(Graphics g)
{super.paintComponent(g);
g.drawImage(bj,0,0,this);
}
Container content;
Toolkit toolkit;
JLabel bkLabel = new JLabel(); // 背景图片标签
JLabel horseLabel = new JLabel();
JButton bButton;
int screenWidth, screenHeight, WIDTH, HEIGHT;
ImageIcon backImage, bImage;
BackGround() {
content = getContentPane();
toolkit = Toolkit.getDefaultToolkit();
screenWidth = toolkit.getScreenSize().width;
screenHeight = toolkit.getScreenSize().height;
bImage = new ImageIcon("pic/logo.jpg");
//我的笨方法
JLabel image_lab = new JLabel(new ImageIcon("D:\\pic\\logo.jpg"));
//编译的时候会帮你把文件拷贝到classes目录下面去
//同时要达到LZ的效果很简单,两个Panel。直接覆盖的话,如果覆盖面板小于底层面板,当鼠标移动到底层面板区域。则显示了,所以建议加上 //setEnabled(false);这样做LZ你不觉得复杂了吗?你直接在我的image_lab 上加载组件不行吗?或者你先都把组件隐藏了,等用户触发事件再显//示也可以啊。
//
backImage = new ImageIcon("pic/background.gif");
bkLabel.setIcon(backImage);
bkLabel.setOpaque(true);
WIDTH = backImage.getIconWidth();
HEIGHT = backImage.getIconHeight();
content.add(bkLabel, -1); // 添加背景图片
bButton = new JButton(bImage);
JPanel panel2 = new JPanel();
panel2.setOpaque(false); // 设置panel2背景透明
panel2.setPreferredSize(new Dimension(40, 40));
panel2.add(bButton);
content.add(panel2);
validate();
setBounds(300, 200, WIDTH, HEIGHT);
setLocation((screenWidth - WIDTH) / 2, (screenHeight - HEIGHT) / 2);
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
} public static void main(String[] args)
{
new BackGround();
}
}