1
我有一個遊戲框架,裏面有一個JLabel數組,我在開始時爲它們中的兩個(最後一個和第一個)添加了現有的(擴展的)MouseListener。現在,每當有一個MouseListener的JLabel被點擊時,我希望它不再具有MouseListener,而是MouseListener進入JLabel數組中的下一個/上一個索引。讓MouseListener本身改變他正在監聽的對象
我找不到可以處理該算法的機制。
public class NumberGameFrame extends javax.swing.JFrame {
...
JLabels[] numbers;
int left, right;
public void playPVC() {
...
left = 0; right = numbers.legth - 1;
PVCMouse pvc_mouse = new PVCMouse(); // MouseListener
setPlaybleNumbers(left,right,pvc_mouse);
...
}
public void setPlaybleNumbers(int left, int right, MouseListener mouse){
for(int i = 0; i < numbers.length; i++){ // "kill" other numbers first
if (i != left && i != right){
if (numbers[i].getMouseListeners() != null){
numbers[i].removeMouseListener(mouse);
}
...
}
}
numbers[left].addMouseListener(mouse);
...
numbers[right].addMouseListener(mouse);
...
}
...
}
我的想法是,一些如何pvc_mouse.mouseClicked()可以調用this.setPlaybleNumbers(++離開,..)或(--right,...),但不能MouseListener的處理陣列的JLabel和setPlaybleNumbers方法,因爲它們不是靜態的。
不錯,爲了更好地幫助發佈[SSCCE](http://sscce.org/),短小,可運行,可編譯 – mKorbel 2013-02-25 09:06:14
爲什麼不使用連接到父面板的單個鼠標偵聽器並維護索引活動標籤 – MadProgrammer 2013-02-25 09:07:21