Object source=e.getSource() //获取事件源,即地鼠标签
if(source instanceof JLabel){ //手答如果事件是标签组件
JLabel mouse=(JLabel)source //强制转换为JLabel标签
mouse.setIcon(null) //取消标签图标
}
}
})
this.getContentPane().add(mouses[i]) //添加显示地鼠的标签到窗体
}
mouses[0].setLocation(253, 300) //设置每个标签的位置
mouses[1].setLocation(333, 250)
mouses[2].setLocation(388, 296)
薯皮 mouses[3].setLocation(362, 364)
mouses[4].setLocation(189, 353)
mouses[5].setLocation(240, 409)
final JLabel backLabel=new JLabel() //创建显示背景的标签
backLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight())
this.setBounds(100,100,img.getIconWidth(),img.getIconHeight())
backLabel.setIcon(img)//添加背景到标签
this.getContentPane().add(backLabel) //添加背景标签到窗体
}
/**
* 线毕手慧程的核心方法
*/
public void run(){
while(true){//使用无限循环
try{
Thread.sleep(3000)//使线程休眠3秒
int index=(int)(Math.random()*6) //生成随机的地鼠索引
if(mouses[index].getIcon()==null){ //如果地鼠标签没有设置图片
mouses[index].setIcon(imgMouse) //为该标签添加地鼠图片
}
}catch(InterruptedException e){
e.printStackTrace()
}
}
}
}
A。首先你的图片路径找不到,所以没有东西显示。解决方法,1.如果你用eclipse那首颂轮么到workspace下找到项目路径下的樱渣bin文件夹,将图片放到与.Class文件同目录下。
2.或者修改代码
ImageIcon icon1 = new ImageIcon("mouse.gif ")
将其中的"mouse.gif "指定为你图者信片所在的路径.
B.第二个问题是
public void mousePressed(MouseEvent e) 的左面有个小三角形是eclipse的提示,说明本方法继承自其它父类的方法。
另外,代码虽然没有什么错,但是本身这样的写实有问题的。比如设计模式,重用性等等。
既然前面的问题解决了,那么背景当然是加代码如下了:
Container c = getContentPane()
c.setBackground(Color.red)
如果想要加自定义的图片作为背景有点麻烦:
1.首先设置一个label
ImageIcon background = new ImageIcon("test.jpg")
JLabel label = new JLabel(background)
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0, 0, background.getIconWidth(),
background.getIconHeight())
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
imagePanel = (JPanel) frame.getContentPane()
imagePanel.setOpaque(false)
// 内容窗格默认的布局管理器为BorderLayout
imagePanel.setLayout(new FlowLayout())
imagePanel.add(new JButton("测试按钮"))
frame.getLayeredPane().setLayout(null)
// 把背景图片添加到分层窗格的最底层作为背景
frame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE))
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setSize(background.getIconWidth(), background.getIconHeight())
frame.setResizable(false)
frame.setVisible(true)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)