该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
重写Panel类的paint(Graphics g)方法,在方法内容调用g.drawImage(Image image,int x,int y,ImageObserver observer)方法,通过Panel类的getBounds()方法返回该组件的边界,然后把x,y参数和窗口大小关联起来;至于能够想自动调整图片大小的话,需注册ComponentListener侦听器;
大致可以这样写:
public MyPanel extends Panel {
private Rectangle r=null;
proctected MyPanel() { //构造函数
r=this.getBounds();
this.addComponentListener(new Resize()); //注册侦听器
}
public void paint(Graphics g) { //重写paint方法
super.paint(g); //调用父类Panel的paint方法
int x=r.width-img.getWidth(this); //图片的左上角横坐标
int y=r.width-img.getHeight(this); //图片的左上角纵坐标
g.drawImage(img,x,y,this);
}
class Resize extends ComponentAdapter { //适配器类ComponentAdapter的子类
public void componentResized(ComponentEvent e) {
r=this.getBounds(); //当窗口变化时获取该组件的边界
this.repaint();
}
}
}
具体地方还需要你自己填充,希望能帮到你!