import java.util.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.*;public class Photo extends JPanel {
//图片大小。
final int pw = 60;
final int ph = 60;
//图片初始位置。
private int x1 = 700;
private int y1 = 500;
//图片是否存在。
private boolean live ; ImageIcon p = new ImageIcon("A_1.jpg");
Image p1 = p.getImage();
public void paintComponent(Graphics g){
g.setColor(Color.PINK);
g.fillRect(0,0, 800,600);
//******************************************************************
g.clearRect(x1,y1,pw,ph);
g.drawImage(p1,x1,y1,pw,ph,this);
this.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
live = false;
}
});
if(live){
g.setColor(Color.PINK);
g.fillRect(0,0, 800,600);
}
//******************************************************************
}
}
**之间的 代码 我想实现,图片的调用,并且不会掩盖住原来的背景色。
加一个监听--->但鼠标点击时候,图片会消失。求指点
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.*;public class Photo extends JPanel {
//图片大小。
final int pw = 60;
final int ph = 60;
//图片初始位置。
private int x1 = 700;
private int y1 = 500;
//图片是否存在。
private boolean live ; ImageIcon p = new ImageIcon("A_1.jpg");
Image p1 = p.getImage();
public void paintComponent(Graphics g){
g.setColor(Color.PINK);
g.fillRect(0,0, 800,600);
//******************************************************************
g.clearRect(x1,y1,pw,ph);
g.drawImage(p1,x1,y1,pw,ph,this);
this.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
live = false;
}
});
if(live){
g.setColor(Color.PINK);
g.fillRect(0,0, 800,600);
}
//******************************************************************
}
}
**之间的 代码 我想实现,图片的调用,并且不会掩盖住原来的背景色。
加一个监听--->但鼠标点击时候,图片会消失。求指点
paintComponent 里面,这样每次重绘一次都会新加一个监听器上去,
点多了小心内存溢出add 监听器,应该在构造时只加一次就好了
this.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
live = false;
}
});//这个监听放在构造方法里,paint里面画画图就好了//*************************************if(live)
{
g.clearRect(x1,y1,pw,ph);
g.drawImage(p1,x1,y1,pw,ph,this);
}
//*************************************
//不知道这样可不可以。。