ImageIcon com eventos de mouse

Ola galera, eu conseguiria com ImageIcon colocar a imagem num JPanel, pintar essa Imagem na tela após 1 evento de mouse?!?!?!?!

de uma olhada no código:



package Codigo;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Janela1 extends JFrame{
	int pWidth,pHeight;
	CarregarImagens carrega;
	ImageIcon imaIcon;
	String nome,s;
	int locx=0,locy =0;
	int posX, posY;
	static int coordx[] = new int[21];
	static int coordy[] = new int[21];
	JPanel painel1, painel2, painel3,painel4,painel5,painel6,painel7;
	Container tela;
	int x = 0;
	
	public Janela1(int x, int y, CarregarImagens ci) {
		pWidth = x;
		pHeight = y;
		carrega = ci;
		
		tela = getContentPane();
		tela.setLayout(null);
		setTitle("Escolha uma opção");
		setVisible(true);
		setSize(pWidth,pHeight);
		
		for(int i = 0; i <= 20; i++) {
			if(locx == pWidth - 100) {
				locy = locy + 100;
				locx = 0;
			}
			
			JLabel rotulo = new JLabel();
			s = (String) carrega.id.get(i);
			imaIcon = carrega.getImage(s,i);
			rotulo.setIcon(imaIcon);
			rotulo.setBounds(locx,locy,90,90);
			tela.add(rotulo);
			coordx[i] = locx;
			coordy[i] = locy;
			locx = locx + 100;
		}
		
		painel1 = new JPanel();
		painel1.setBounds(50,pHeight-100,pWidth,90);
	
		
		addMouseListener(new Tratador());
	}
	
	
	private class Tratador extends MouseAdapter {
		public void mousePressed(MouseEvent e) {
			posX = e.getX();
			posY = e.getY();
			int panel = 0;

			for(int i = 0; i <=20; i++) {
				if((coordx[i] >= posX)&&(coordx[i] <= posX + 90)&&
						(coordy[i]>= posY)&&(coordy[i]<= posY + 90)) {
					s = (String) carrega.id.get(i);
					imaIcon = carrega.getImage(s,i);
					repaint();
			
				}	
			}				
	}
	

	public void paint(Graphics g) {
		imaIcon.paintIcon(painel1,g,x,pHeight-100);
		x = x + 100;
	}
	}
}

preciso ver o que posso esta fazendo errado!!!

flws

ve se isso resolve seu problema, dai no lugar da string vc coloca sua imagem

agora se é a melhor forma de fazer não sei, não usei setbounds

falow

[code]import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class CliqueImageIcon {
int posX;
int posY;
JPanel jPanel;

public CliqueImageIcon() {
	JFrame frame = new JFrame();
	jPanel = new JPanel(new FlowLayout()){
		@Override
		protected void paintComponent(Graphics g) {
			Graphics2D g2 = (Graphics2D) g;
			g2.drawString("aqui vc coloca seu imageIcon",posX, posY);
			
		}
	};
	jPanel.addMouseListener(new MouseListener() {
		
		@Override
		public void mouseReleased(MouseEvent e) {
		}
		
		@Override
		public void mousePressed(MouseEvent e) {
			posX = e.getX();
			posY = e.getY();
			jPanel.repaint();
		}
		@Override
		public void mouseExited(MouseEvent e) {
		}
		@Override
		public void mouseEntered(MouseEvent e) {
		}
		
		@Override
		public void mouseClicked(MouseEvent e) {
		}
	});
	frame.add(jPanel);
	frame.setTitle("ImageIcon");
	frame.setSize(550, 400);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setVisible(true);
	frame.setLocationRelativeTo(null);
	
}

public static void main(String[] args) {
	CliqueImageIcon cliqueImageIcon = new CliqueImageIcon();
}

}[/code]