近日做一个小程序
遇到以下几个问题1:
Jpanel上更换图片:
首先我重写paintComponent方法设置了panel的背景图片
我想另起一个线程每隔一段时间对panel的背景图片进行更换,要如何做呢??protected void paintComponent(final Graphics g) {
super.paintComponent(g);
g.drawImage(image,0,0,getWidth(),getHeight(),null);
//每隔一段时间,重绘背景
skinThread thread = new skinThread(this,g,getWidth(),getHeight());
thread.start();
}这是我的一个方法,创建一个线程,并传入了panel,g,以及相关参数
然后,我在run方法中调用g.drawImage(image2,0,0,width,height,null); 我觉得不大对……因为没效果2:
通过事件获取其所在的Frame比如我点击一个Jframe上的button,在另一个监听类中如果通过e获取button所在的Frame对象呢???
望各位高手解答!!!!!
遇到以下几个问题1:
Jpanel上更换图片:
首先我重写paintComponent方法设置了panel的背景图片
我想另起一个线程每隔一段时间对panel的背景图片进行更换,要如何做呢??protected void paintComponent(final Graphics g) {
super.paintComponent(g);
g.drawImage(image,0,0,getWidth(),getHeight(),null);
//每隔一段时间,重绘背景
skinThread thread = new skinThread(this,g,getWidth(),getHeight());
thread.start();
}这是我的一个方法,创建一个线程,并传入了panel,g,以及相关参数
然后,我在run方法中调用g.drawImage(image2,0,0,width,height,null); 我觉得不大对……因为没效果2:
通过事件获取其所在的Frame比如我点击一个Jframe上的button,在另一个监听类中如果通过e获取button所在的Frame对象呢???
望各位高手解答!!!!!
public ImagePanel extends JPanel{
private Image image;
public ImagePanel(){ ... }
public void setImage(String imageFile){
image = ImageIO.read(imageFile);
repaint();
}
public void paintComponent(Graphics g){
...
g.drawImage(...);
}
}ImagePanel imagePanel = new ImagePanel(...);
Timer timer = new java.util.Timer(true);
timer.schedule(new TimerTask(){
public void run(){
imagePanel.setImage(...);
}
},
delay,
period);
2
getParent
public Container getParent()获取此组件的父级。 返回:
此组件的父级容器
从以下版本开始:
JDK1.0 e.getSource().getParent()