2016-03-31 9 views
2

Bunu elde ettik: label = new JLabel [9] [9]. Etikete yeni bir simge koymak istiyorum (tabii ki tıkladığım etiket için). Benim de etiketlerim olan 500x500 boyutunda bir panelim var.Mouselistener ile getX'e ve etiketlere getY'ye dayanan bir şey nasıl ayarlanır?

Yani, mouselistener'de, getX() ve getY() 'yi kullanabilirim. Bundan sonra, hangi satır ve tıklattığım sütunlarda nasıl diyebilirim? Paneli küçük alanlara ayırmalı mıyım? Umarım soru anlaşılabilirdi. Böyle Burada soruları okumak, ama şimdi bu yazdım kadar ben gerçekten ...

cevap buldu yoktur:

  public void mouseClicked(MouseEvent e){ 

       int mouseX = e.getX(); 
       int mouseY = e.getY(); 
       int i = 0; 
       int j = 0; 



       URL url = Click.class.getResource("image.png"); 
       ImageIcon img = new ImageIcon(url); 
       label[i][j] = new JLabel(img); 
      } 
+0

* "Şunu aldım: label .." * Bu noktada, undecorated 'JButton' veya JToggleButton' kullanıyorum .. *" 'URL url = Click.class.getResource (" image.png ") ");' * * düğmelerinin, görüntüler arasında gezinirken, odaklandığında, basılıyken vb. değişiklikler yapmak için dahili yöntemler vardır. Herhangi bir belirli dinleyici için gerek yoktur. –

+1

* ".. Hangi satırı ve sütünü tıklattığımı nasıl söyleyebilirim?" * Dinleyici her etikete eklendiyse, olayın kaynağı hangisinin olduğunu bilmek için 'e.getSource()' dır. –

+0

Teşekkür ederiz. Ve bana getSource() için küçük bir örnek verebilir misiniz, bunu nasıl kullanabilirim? – programmo

cevap

0

Sen bir GridLayout ile bir panel var demek. Adını söylediğini söylemedin, o zaman ona p diyelim. senin mouseClicked yöntemde

yapın:

JLabel jlb = (JLabel) p.getComponentAt(e.getX(),e.getY()); 

gelip kapıyı çalınca yapmak istediğini yapmak.

İlgili konular