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)); } }
时间: 2024-02-10 07:07:39 浏览: 32
这段代码是为一个文本框`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();
// 处理替换事件
// ...
}
});
```
通过监听器可以实现文本框输入事件的实时响应,满足用户输入需求。
使用java掌握swing组件的使用,掌握事件处理机制 1、创建一个Jframe窗体。 2、在创建的窗体中添加标签、按钮等组件 3、为以上创建的窗口中的组件添加事件处理功能,要求在文本框中输入字符串、当按下回车键时,将输入的文字显示在输出区域。
好的,以下是一个使用Java Swing组件的示例程序,实现了上述要求的功能:
```java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class SwingDemo implements ActionListener, KeyListener {
private JFrame frame;
private JPanel panel;
private JLabel label;
private JTextField textField;
private JButton button;
private JTextArea textArea;
public SwingDemo() {
// 创建窗体
frame = new JFrame("Swing Demo");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建面板
panel = new JPanel();
panel.setLayout(new BorderLayout());
// 创建标签
label = new JLabel("请输入文字:");
panel.add(label, BorderLayout.NORTH);
// 创建文本框
textField = new JTextField();
textField.addKeyListener(this);
panel.add(textField, BorderLayout.CENTER);
// 创建按钮
button = new JButton("确定");
button.addActionListener(this);
panel.add(button, BorderLayout.EAST);
// 创建输出区域
textArea = new JTextArea();
textArea.setEditable(false);
panel.add(new JScrollPane(textArea), BorderLayout.SOUTH);
// 将面板添加到窗体上
frame.add(panel);
// 显示窗体
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// 按钮被点击时触发的事件处理函数
String input = textField.getText();
textArea.append(input + "\n");
textField.setText("");
}
@Override
public void keyPressed(KeyEvent e) {
// 文本框中按下回车键时触发的事件处理函数
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
String input = textField.getText();
textArea.append(input + "\n");
textField.setText("");
}
}
@Override
public void keyTyped(KeyEvent e) {}
@Override
public void keyReleased(KeyEvent e) {}
public static void main(String[] args) {
new SwingDemo();
}
}
```
在这个示例程序中,我们创建了一个JFrame窗体,然后在窗体中添加了一个标签、一个文本框、一个按钮和一个输出区域。为了实现输入文字后按下回车键即可将文字显示在输出区域上的功能,我们为文本框和按钮分别添加了键盘事件和点击事件的监听器。当监听到事件后,程序会将文本框中的文字添加到输出区域中,并清空文本框以便下一次输入。最后,我们将面板添加到窗体上,并让窗体显示出来。
希望这个示例程序能帮助你掌握Java Swing组件的使用和事件处理机制。