我想做一个画图案的程序,实现点击左键画一个图,如果图片出现重叠,那么后来出现的图片应该在之前出现的图片上面,
但是,我现在做了一个小测试,发现后来出现的图片是显示在之前出现的图片下面,
而且还不可以在已画的图片上面作图,
请问为什么会这样呢?
我开始的时候用canvas作图的,后来改了panel,但是效果还是一样,没有改进,请问各位大侠,我的问题出在那里呢?
下面是我的代码:
//这是Panel版本:
package CheviC_Panel;import java.awt.*;
import java.awt.event.*;
import javax.swing.ImageIcon;public class OverPanel extends Frame
{
public OverPanel()
{
super("Chevi.C");
setBounds(100,100,600,550);
setVisible(true); addWindowListener(new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}); addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e) 
{
if(e.getButton()==MouseEvent.BUTTON1)
{
add(new BottomPanel(e.getX(),e.getY()) );
}
if(e.getButton()==MouseEvent.BUTTON3)
{
add(new TopPanel(e.getX(),e.getY()) );
}
}
});
} //main function
public static void main(String[] args)
{
new OverPanel();
}
}
//画地面
class BottomPanel extends Panel
{
public BottomPanel(int x,int y)
{
setLocation(new Point(x,y));
setSize(325,260);
}
@Override
public void paint(Graphics g)
{
g.drawImage(new ImageIcon("325_260.jpg").getImage(),0,0,this);
}
};//画顶画
class TopPanel extends Panel
{
public TopPanel(int x,int y)
{
setLocation(new Point(x,y));
setSize(80,80);
}
@Override
public void paint(Graphics g)
{
g.drawImage(new ImageIcon("80_80.gif").getImage(),0,0,this);
}
};//这是Canvas版本:
package CheviC_Canvas;import java.awt.*;
import java.awt.event.*;
import javax.swing.ImageIcon;public class OverCanvas extends Frame
{
public OverCanvas()
{
super("Chevi.C");
setBounds(100,100,600,550);
setVisible(true); addWindowListener(new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}); addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e) 
{
if(e.getButton()==MouseEvent.BUTTON1)
{
add(new BottomCanvas(e.getX(),e.getY()) );
}
if(e.getButton()==MouseEvent.BUTTON3)
{
add(new TopCanvas(e.getX(),e.getY()) );
}
}
});
} //main function
public static void main(String[] args)
{
new OverCanvas();
}
}
//画地面
class BottomCanvas extends Canvas
{
public BottomCanvas(int x,int y)
{
setLocation(new Point(x,y));
setSize(325,260);
}
@Override
public void paint(Graphics g)
{
g.drawImage(new ImageIcon("325_260.jpg").getImage(),0,0,this);
}
};//画顶画
class TopCanvas extends Canvas
{
public TopCanvas(int x,int y)
{
setLocation(new Point(x,y));
setSize(80,80);
}
@Override
public void paint(Graphics g)
{
g.drawImage(new ImageIcon("80_80.gif").getImage(),0,0,this);
}
};