繁体   English   中英

用Java动态定义事件处理程序

[英]Define dynamically event handler in Java

假设我已经用Java定义了两个数组。 第一个数组有m单元,第二个数组有n单元。 假设每个单元格可以具有01值。

在此程序中,第一个数组的每个单元将加入第二个数组的一个单元,但是我们不知道哪个将连接到第二个数组的哪个单元(这种连接是完全逻辑的,例如,我们只知道array1[3]array2[7]有关。

因此,现在我想为每个关系定义一个事件处理程序,这样,当一个单元从1到0波动时,其成对的单元就会波动。 实际上,我想以运行时动态方式定义事件处理程序,因为在此之前,我不知道array1哪个单元将与array2哪个单元配对。

有什么解决办法吗?

如果您认为没有动态事件处理程序就可以解决此问题,请告诉我您的解决方案。

这是一种无需使用事件处理程序即可解决此问题的方法。 看看这是否适合您的工作。

首先,让我们使用两个分别为mx 1nx 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 */是选择将10放入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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM