我有以下代码:
int[] matrix = new int[9][9];
(for int x = 0; x <= 8; x++){
(for int y = 0; y <= 8; x++){
JtextField matrix[x][y] = new JtextField(“Matrix" x + y)
int[] coords = new int[2];
coords[0] = x;
coords[1] = y;
matrix[x][y].putClientProperty("coords", coords);
matrix[x][y].setText(game[x][y]);
}
}
循环结束后,我需要一种方法来找出用户输入的文本字段(用户也会输入)。所以: 1.如何检查JtextField是否已被编辑而不知道它是哪一个或其名称? 2.如何检查文本字段所在的“坐标”?我知道如何做到这一点,但由于某种原因我无法编码。
我觉得答案是正确地盯着我,但是已经很晚了,我累了,而且我会感到慌乱。谢谢!
答案 0 :(得分:1)
答案取决于你想要达到的目标。
如果您只对最终结果感兴趣,可以使用ActionListener
(当用户点击 Enter 时)和FocusListener
表示他们何时“并以任何方式离开现场(假设你想知道这一点)
当相应事件发生时,您可以使用source
检查事件的getSource
。现在返回Object
,但您可以使用instanceof
来确定对象是否可以转换为JTextField
...
例如......
Object source = evt.getSource();
if (source instanceof JTextField) {
JTextField field = (JTextField)source;
int[] coords = field.getClientProperty("coords");
}
请查看How to write an Action Listener和How to write a Focus Listener了解详情。
根据您的需要,您还可以查看Validating Input