Я работа с IDE Netbeans на Java
У меня есть форма с одной панелью JPanel. Каждая JPanel имеет gridLayout 3x3, и в каждом месте есть изображение, представляющее число [0,1,2,3,4,5,6,7,8] (изображение создается с использованием пользовательского класса, а не просто соответствует изображение в лаборатории).
Я хочу иметь возможность обмениваться двумя изображениями на панели, когда пользователь щелкает их (первый щелчок: нет действия, второй щелчок: переключение между двумя изображениями, установленными в компонентах jPanel).
Я уже создал функцию exchangeComponents и с тестовым кодом (например:
exchangeComponents (0,8,jPanel1)
она правильно обменивает изображения, расположенные в позиции 1 (1-я строка, 1-й столбец) и в позиции 2 (3-я строка, 3-й столбец).
Функция a creted выглядит следующим образом:
public void exchangeComponents(int component1,int component2,JPanel jpanel){
try{
Component aux1 = jpanel.getComponent(component1);
Point aux1Loc = aux1.getLocation();
Component aux2 = jpanel.getComponent(component2);
Point aux2Loc = aux2.getLocation();
aux1.setLocation(aux2Loc);
aux2.setLocation(aux1Loc);
}
catch (java.lang.ArrayIndexOutOfBoundsException ex){ /* error! bad input to the function*/
System.exit(1);
}
}
Я полагаю, мне нужно иметь событие, которое вызывает функцию exchangeComponents(), когда пользователь щелкает одно из изображений на jPanel1, но как мне это сделать и как проверить, какие компоненты (изображения) выбрал пользователь? Я просто знаю, что когда я создаю кнопку, если щелкнуть по ней (из IDE), создается событие типа
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
// some code..
}
и выполняется код, который я заполняю.
Заранее спасибо за любую подсказку.