Pegar coordenadas do click do mouse no Jpanel

eh bem provável, já q não está imprimindo as coordenadas!

muda a cor do seu Panel para saber se ele está sendo adicionado no Frame…

O setBackground(), que vc se refere?

Eu alterei mas não apereceu a cor, será que é pq ja tem a imagem
no panel…

valeu flaryon.

é mouse ‘clicked’ não ‘cliked’

 addMouseListener(new MouseAdapter() {  
             public void mouseCliked(MouseEvent e) {  //Errado.. aqui voce só criou um método com esse nome mas ele não vai ser chamado
                 int x = e.getX();  
                 System.out.println(x);  
                 int y = e.getY();  
                 System.out.println(y);  
             }  
         });  
  public void mouseClicked(MouseEvent e){//correto

se vc alterou a cor do seuPanel, e qd mandou visualizar o Form, não apareceu uma área com a cor q vc setou é pq o panel não está dentro do Form…adicione o panel ao Form!!!

Valeu Mark_Ameba…era o nome mesmo…rss

Agora vou poder dar continuidade aqui.

por um ‘c’…aheuaehauea

flaroyn eu adicionei meu panel ao frame na minha outra classe.
Fiz assim.

public PEMFrame() {

		
		Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension dimensaoTela = kit.getScreenSize();

		int larguraTela = dimensaoTela.width;
		int alturaTela = dimensaoTela.height;

		setBounds(larguraTela / 6, alturaTela / 6, LARGURA_FRAME, ALTURA_FRAME);

		PEMPanel panel = new PEMPanel();
		add(panel);

	}

Esta correto?
Como eu poderia adicionar o panel em outro panel e depois ao frame?

Obrigado mais uma vez

Por isso eu coloco @Override nos métodos que estou sobreescrevendo… se estiver errado o nome o compilador reclama que não existe este método para sobreescrever.

da mesma forma

 JPanel Panel1 = new JPanel();
 JPanel Panel2= new JPanel();
  Panel1.add(Panel2);
 JFrame form = new JFrame();
 form.add(Panel1);

esqueci de mencionar que deve ser dimensionado o tamando dos Paineis com o método

setpreferredSize(new Dimension(suaLargura,suaAltura));

Outra coisa…

     public void paintComponent(Graphics g) {  
         super.paintComponents(g);  
         if (imagem != null)  
             g.drawImage(imagem, 0, 0, null);  
     } 

Não trabalhe com o Graphics direto por que voce vai ter resultados estranhos.

Crie uma copia e trabalhe com o Graphics2D

     public void paintComponent(Graphics g) {  
         super.paintComponents(g);  
         Graphics2D g2d = (Graphics2D) g.create();//Criando a copia
         if (imagem != null)  
             g2d.drawImage(imagem, 0, 0, null);  
         g2d.dispose();//liberando para ser desenhada
     } 

E quais problemas voce esta tendo agora?

Se esse Panel voce quer que seja o fundo inteiro do JFrame voce pode simplesmente no frame ao invés de add(panel), coloque setContentPane(panel)
Mas nesse caso um método add no frame iria chamar o add desse Panel que talvez seja algo que voce queira.

Mark_Ameba vc postou

addMouseListener(new MouseAdapter() {    
            public void mouseCliked(MouseEvent e) {  //Errado.. aqui voce só criou um método com esse nome mas ele não vai ser chamado  
                int x = e.getX();    
                System.out.println(x);    
                int y = e.getY();    
                System.out.println(y);    
            }    
        });    

Falou ser errado mas funcionou aqui…
Como assim vc quis dizer? eu não entendi.

Obrigado.

Vocês gostam de passar trabalho!

Coloque a imagem num panel que contenha só a imagem, e coloque o evento sobre esse panel!

o correto é mouseClicked e não mouseCliked!

[quote=flaryon]da mesma forma

JPanel Panel1 = new JPanel(); JPanel Panel2= new JPanel(); Panel1.add(Panel2); JFrame form = new JFrame(); form.add(Panel1); [/quote]

Você está adicionando um painel vazio, nao vai exibir nada mesmo.
Tu precisa adicionar o painel principal no teu frame.getContentPane().add( painel );

[quote=Filipe A.]Mark_Ameba vc postou

addMouseListener(new MouseAdapter() {    
            public void mouseCliked(MouseEvent e) {  //Errado.. aqui voce só criou um método com esse nome mas ele não vai ser chamado  
                int x = e.getX();    
                System.out.println(x);    
                int y = e.getY();    
                System.out.println(y);    
            }    
        });    

Falou ser errado mas funcionou aqui…
Como assim vc quis dizer? eu não entendi.

Obrigado.[/quote]

Funcionou mesmo? Quando voce clicou ele mostrou as coordenadas?

O correto é mouseClicked e voce colocou mouseCliked… o que eu quis dizer é que voce simplesmente criou um novo método dentro dessa classe que nunca vai ser chamado.

Aham eu ja corrigi aqui é que postei errado.

Não Pessoal ta exibindo aqui sim…

Ta blz…

agora tenho que implementar outras coisas.

Tipo vou ter que desabilitar os botões enquanto o som estiver tocando
Pra pessoa não avançar de tela.

Se alguem poder dar uma ajuda.

Tambem vou modificar o meu codigo com as dicas que recebi e ver como irá ficar.

Obrigado, estão me ajudando bastante.

No caso do som.
Se voce tocar o som na Thread principal toda sua aplicação já vai ficar desabilitada até o som terminar.

Nossa não sei nada de Thread vou ter que da uma pesquisada.

Mas o som vai continuar carregando dentro da minha classe PEMPanel?

valeu!