Vou postar de novo os codigos que eu fiz atualizados:
package Codigo;
import javax.swing.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.*;
import java.util.List;
import java.util.ArrayList;
public class Janela1 extends JFrame {
int pWidth, pHeight;
CarregarImagens imagens;
static int posX;
static int posY;
int xis = 50;
static int x1[] = new int[21];
static int y1[] = new int[21];
BufferStrategy bs;
PintarImagem pi;
JPanel superior,inferior;
String s;
int j = 0;
ArrayList addIma = new ArrayList();
private Point[] points = new Point[10000];
private int pointCount = 0;
Image nome3[] = new Image[21];
List<Image> listaImagens = new ArrayList<Image>();
public Janela1(int x, int y, CarregarImagens ci) {
pWidth =x;
pHeight = y;
imagens = ci;
Container c = getContentPane();
c.setLayout(null);
setTitle("Escolha uma opção");
setBackground(Color.white);
setVisible(true);
setSize(pWidth,pHeight);
setResizable(true);
setIgnoreRepaint(true);
createBufferStrategy(2);
bs = getBufferStrategy();
superior = new PintarImagem(pWidth,pHeight,imagens,bs);
c.add(superior);
superior.setBounds(10,10,pWidth,pHeight);
superior.setBorder(BorderFactory.createLineBorder(Color.red,03));
addMouseListener(new Tratador());
//Aqui aonde estão as imagens que serão clicadas pelo mouse
/*
JLabel rotulo1 = new JLabel("");
rotulo1.setIcon(getImagem("00021.gif"));
rotulo1.setBounds(50,pHeight-440,90,90);
JLabel rotulo2 = new JLabel("");
rotulo2.setIcon(getImagem("00031.gif"));
rotulo2.setBounds(150,pHeight-440,90,90);
JLabel rotulo3 = new JLabel("");
rotulo3.setIcon(getImagem("00111.gif"));
rotulo3.setBounds(620,pHeight-440,90,90);
c.add(rotulo1);
c.add(rotulo2);
c.add(rotulo3);
*/
/*
inferior = new EventImagem(pWidth,pHeight,imagens);
c.add(inferior);
inferior.setBounds(10,pHeight-200,pWidth,200);
inferior.setBorder(BorderFactory.createLineBorder(Color.red,03));
addMouseListener(new Tratador());
//aqui aonde eu pintaria as imagens que foi clicado no JPanel superior
*/
}
/* public ImageIcon getImagem(String nome){
String caminhoDaImagem = "/Imagens2/" + nome;
ClassLoader classLoader = this.getClass().getClassLoader();
ImageIcon icone = new ImageIcon(getClass().getResource(caminhoDaImagem));
return icone;
} */
/*
public void pinte() {
Graphics2D g = (Graphics2D) bs.getDrawGraphics();
int x =50, y =50;
String s;
//System.out.println("pWidth: " + pWidth);
for(int i = 0; i <= 20; i++) {
if(x > pWidth - 100) {
y = y + 100;
x = 50;
x1[i] = x;
y1[i] = y;
}
try {
BufferedImage bi = new BufferedImage(90,90,BufferedImage.TYPE_INT_RGB);
s = (String)imagens.id.get(i);
bi = imagens.getImage(s, i);
g.drawImage(bi, x,y,this);
if(!getBufferStrategy().contentsLost())
bs.show();
x1[i] = x;
x = x + 100;
}
catch(Exception e) {
e.printStackTrace();
}
}
}
*/
private class Tratador extends MouseAdapter {
public void mousePressed(MouseEvent e) {
String s;// --ö)
posX = e.getX();
posY = e.getY();
pintar(posX,posY);
}
}
public void pintar(int x, int y) {
Graphics2D g = (Graphics2D) bs.getDrawGraphics();
posX = x;
posY = y;
for(int i = 0; i<=20;i++) {
if(((posX >= pi.x1[i])&&(posX <= pi.x1[i] + 90))&&
((posY >= y1[i])&&(posY <= y1[i] + 90))) {
try {
BufferedImage bi = new BufferedImage(90,90,BufferedImage.TYPE_INT_RGB);
System.out.println("bufferedImage: " + bi);
s = (String) imagens.id.get(i);
System.out.println("s: " + s);
bi = imagens.getImage(s,i);
listaImagens.add(bi);
g = bi.createGraphics();
g.drawImage(bi,xis,pHeight-100,null);
/*for(int z = 0; z < addIma.size(); z++) {
g.drawImage(nome3[z],aux[z], pHeight-100, null);
}*/
xis = xis + 100;
if(!getBufferStrategy().contentsLost())
bs.show();
}
catch(Exception e) {
e.printStackTrace();
}
}
}
}
}
package Codigo;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferStrategy;
import java.awt.image.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class PintarImagem extends JPanel {
Image nome3;
static CarregarImagens ima;
static int y1[] = {50,50,50,50,50,50,50,150,150,150,150,150,150,150,250,250,250,250,250,250,250};
int x2[] = new int[21];
static int x1[] = new int[21];
static int pWidth;
static int pHeight;
static int posX,posY;
static boolean passou2;
int xis2 = 50;
int j = 0;
JPanel superior;
List<Image> listaImagens = new ArrayList<Image>();
int xis = 50;
int aux[] = new int[21];
BufferStrategy bs;
public PintarImagem(int w, int h, CarregarImagens c, BufferStrategy b) {
ima = c;
pWidth = w;
pHeight = h;
bs = b;
setIgnoreRepaint(true);
pinte();
}
public static void evento(int x1,int x2) {
posX = x1;
posY = x2;
}
public void pinte() {
Graphics2D g = (Graphics2D) bs.getDrawGraphics();
int x =50, y =50;
String s;
//System.out.println("pWidth: " + pWidth);
for(int i = 0; i <= 20; i++) {
if(x > pWidth - 100) {
y = y + 100;
x = 50;
x1[i] = x;
y1[i] = y;
}
try {
BufferedImage nome2 = new BufferedImage(90,90,BufferedImage.TYPE_INT_ARGB);
s = (String)ima.id.get(i);
nome2 = ima.getImage(s, i);
g = nome2.createGraphics();
g.drawImage(nome2, x,y,this);
if(!bs.contentsLost())
bs.show();
x1[i] = x;
x = x + 100;
}
catch(Exception e) {
e.printStackTrace();
}
}
}
}