2016-02-19 85 views
0

我有一個JPanel數組本身包含ImageIcons,我已經將這個數組JPanels添加到單個JPanel(因爲我使用滾動窗格)。在添加這些JPanel時,我爲每個人添加了一個鼠標監聽器,我的問題是,是否可以編寫一個可以使用e.getSource()或其他此類方法的事件處理函數,以便從中提取JPanel和ImageIcon哪一個被點擊。JPanels數組的鼠標偵聽器

這聽起來很複雜,因爲我無法很好地解釋我的情況,但下面是我到目前爲止的一些相關代碼片段。

imageArray=new BufferedImage[256]; 
imageLabelArray = new JLabel[256]; 

...

imageArray[i] = volume.getSlice(image, face, i);//this returns an image 
scaledImage = imageArray[i].getScaledInstance(25,25, 
        Image.SCALE_SMOOTH); 
imageLabelArray[i] = new JLabel(new ImageIcon(scaledImage)); 
imageLabelArray[i].addMouseListener(this); 

...

for(int i=0;i<255;i++){ 
    panel.add(imageLabelArray[i]); 
} 

...

public void mouseClicked(MouseEvent e) { 
    // TODO extract image data 
    dispose(); 
} 

我可以回答,可以清除問題有任何疑問和我將編輯相匹配的問題。

回答

1

寫一個從JPanel延伸的類,它有一個吸氣(可能是一個setter),它允許你管理圖像。剩下的答案就變成了是的。

簡單地把MouseEvent#getComponent結果到你的「面板」的類型,然後您可以訪問的功能來獲得/設置圖像

+0

甚至沒有想到寫另一個類擴展的,只是實現了這個和它的工作!謝謝! – user3311562

相關問題