t1.addKeyListener(new KeyListener() { @Override // 用户如果在文本框中输入字符,则会做出响应 public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub String s1 = t1.getText().trim(); // 按照逗号分割。 String[] scores = s1.split("[, ]+"); System.out.println(Arrays.toString(scores)); // 按照/进行分割 // 创建一个数组 int[] Rotional = new int[scores.length]; for (int i = 0; i < scores.length-1; i++) { String[] coords = scores[i].split("[/ ]+"); if (coords.length > 0 && !coords[0].isEmpty()) { Rotional[i] = Integer.parseInt(coords[0]); System.out.println(Rotional[i]); } if(coords.length > 1 && !coords[1].isEmpty()){ Rotional[i+1] = Integer.parseInt(coords[1]); System.out.println(Rotional[i+1]); } System.out.println("Rotational: " + Arrays.toString(Rotional)); } }这段代码并输出rotional为什么呀
时间: 2024-02-28 08:57:42 浏览: 27
这段代码没有输出`Rotational`数组本身,而是在循环中输出了`Rotational`数组的每个元素。这是因为`Arrays.toString(Rotional)`可以将`Rotational`数组转换成一个字符串,方便输出调试信息。如果你需要输出`Rotational`数组本身,可以在循环外面添加一条输出语句,如下所示:
```
System.out.println("Rotational: " + Arrays.toString(Rotational));
```
这样就可以在循环结束后输出`Rotational`数组的所有元素。需要注意的是,这个输出语句应该放在循环外面,否则它会在每次循环中都输出一遍,导致输出结果混乱。
相关问题
t1.addKeyListener(new KeyListener() { @Override // 用户如果在文本框中输入字符,则会做出响应 public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub String s1 = t1.getText().trim(); // 按照逗号分割。 String[] scores = s1.split("[, ]+"); System.out.println(Arrays.toString(scores)); // 按照/进行分割 // 创建一个数组 int[] Rotional = new int[scores.length]; for (int i = 0; i < scores.length-1; i++) { String[] coords = scores[i].split("[/ ]+"); if (coords.length > 0 && !coords[0].isEmpty()) { Rotional[i] = Integer.parseInt(coords[0]); System.out.println(Rotional[i]); } if(coords.length > 1 && !coords[1].isEmpty()){ Rotional[i+1] = Integer.parseInt(coords[1]); System.out.println(Rotional[i+1]); } System.out.println("Rotational: " + Arrays.toString(Rotional)); } }
这段代码是为一个文本框`t1`添加一个键盘监听器,在用户在文本框中输入字符时做出响应。具体来说,它将文本框中的字符串按照逗号或空格分割成一个字符串数组`scores`,然后对`scores`中的每个元素按照斜杠或空格进行分割,得到一个整数数组`Rotational`。在这个过程中,代码使用了`split`方法和`parseInt`方法。
需要注意的是,这段代码在循环时可能会越界,因为它只循环`scores`数组的前`scores.length-1`个元素,而最后一个元素可能没有被处理。你可以将循环条件修改为`i < scores.length`,以避免这个问题。
另外,这段代码只在用户输入字符时才进行处理,因此在文本框中的内容发生变化时并不会立即更新`Rotational`数组。如果你需要在每次文本框内容改变时都更新`Rotational`数组,可以考虑使用一个文本框监听器来实现。
java 文本框输入事件
Java中文本框输入事件可以通过监听器来实现。常用的监听器有KeyListener和DocumentListener。
KeyListener监听器可以监听键盘事件,包括键盘按下、键盘释放和键盘打字三种事件。可以在事件处理方法中获取文本框中的内容,实现实时响应用户输入的需求。
示例代码:
```
JTextField textField = new JTextField();
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
// 获取文本框中的内容
String text = textField.getText();
// 处理输入事件
// ...
}
});
```
DocumentListener监听器可以监听文本框内容的变化,包括插入、删除和替换三种操作。可以在事件处理方法中获取文本框中的内容,实现实时响应用户输入的需求。
示例代码:
```
JTextField textField = new JTextField();
textField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
// 获取文本框中的内容
String text = textField.getText();
// 处理输入事件
// ...
}
@Override
public void removeUpdate(DocumentEvent e) {
// 获取文本框中的内容
String text = textField.getText();
// 处理删除事件
// ...
}
@Override
public void changedUpdate(DocumentEvent e) {
// 获取文本框中的内容
String text = textField.getText();
// 处理替换事件
// ...
}
});
```
通过监听器可以实现文本框输入事件的实时响应,满足用户输入需求。