ImageIcon com eventos de mouse

1 resposta
F

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

1 Resposta

E

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

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();
	}
	
}
Criado 3 de abril de 2012
Ultima resposta 4 de abr. de 2012
Respostas 1
Participantes 2