【发布时间】:2012-04-15 13:22:18
【问题描述】:
我正在使用 Java 中的 Netbeans IDE。
我有一个带有一个 JPanel 的表单。 每个 JPanel 都有一个 3x3 的 gridLayout 并且在每个地方都有一个表示数字 [0,1,2,3,4,5,6,7,8] 的图像(图像是使用自定义类创建的,而不仅仅是适合实验室中的图像)。
当用户单击它们时,我希望能够在面板中交换两个图像(第一次单击:无操作,第二次单击:切换 jPanel 组件中安装的两个图像)。
我已经创建了一个函数 exchangeComponents 和一个测试代码(比如:
exchangeComponents (0,8,jPanel1)
它正确地交换位于位置 1(第 1 行第 1 列)和位置 2(第 3 行第 3 列)的图像。
创建的函数如下:
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);
}
}
我想当用户单击 jPanel1 上的一个图像时,我需要一个调用函数 exchangeComponents() 的事件,但我应该怎么做呢?以及如何检查用户选择了哪些组件(图像)? 我只知道,当我创建一个 Button 时,如果单击它(从 IDE 中)一个类似的事件
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
// some code..
}
创建并执行我填写的代码。
提前感谢您的任何提示。
【问题讨论】:
标签: java events components jpanel