![](/img/trans.png)
[英]Java use event handler on multiple buttons dynamically and in a clean way
[英]Define dynamically event handler in Java
假设我已经用Java定义了两个数组。 第一个数组有m
单元,第二个数组有n
单元。 假设每个单元格可以具有0
或1
值。
在此程序中,第一个数组的每个单元将加入第二个数组的一个单元,但是我们不知道哪个将连接到第二个数组的哪个单元(这种连接是完全逻辑的,例如,我们只知道array1[3]
与array2[7]
有关。
因此,现在我想为每个关系定义一个事件处理程序,这样,当一个单元从1到0波动时,其成对的单元就会波动。 实际上,我想以运行时动态方式定义事件处理程序,因为在此之前,我不知道array1
哪个单元将与array2
哪个单元配对。
有什么解决办法吗?
如果您认为没有动态事件处理程序就可以解决此问题,请告诉我您的解决方案。
这是一种无需使用事件处理程序即可解决此问题的方法。 看看这是否适合您的工作。
首先,让我们使用两个分别为mx 1
和nx 1
2D数组,而不是两个数组。
int[][] array1 = new int[m][];
int[][] array2 = new int[n][];
for (int i = 0; i < m; i++)
array1[i] = new int[] { /* your code */ ? 1 : 0 };
for (int i = 0; i < n; i++)
array2[i] = array1[ /* your code */ ];
第一个/* your code */
是选择将1
或0
放入array1
每个元素中的条件。 第二个/* your code */
是您用来确定array1
哪个元素对应于array2
每个元素的方法。
现在, array2
每个元素也是array1
的元素,因此,当您将一个数组中的值从0
更新为1
,它也会在另一个数组中更新。
array2[7] = array1[3];
array1[3][0] = 0;
System.out.println(array2[7][0]); // prints "0"
array1[3][0] = 1;
System.out.println(array2[7][0]); // prints "1"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.