📌  相关文章
📜  como pegar o valor de um campo de texto swing - Java (1)

📅  最后修改于: 2023-12-03 15:00:00.464000             🧑  作者: Mango

如何获取Swing中文本框的值 - Java

在Swing中,我们可以通过很多不同的组件来获取用户输入,比如文本框。在本文中,我们将讨论如何获取Swing中文本框的值。

获取文本框内的值

我们可以使用getText()方法来获取Swing文本框中的值,如下代码所示:

JTextField textField = new JTextField();
String value = textField.getText();

这个例子创建了一个Swing文本框并从中获取了用户输入的值。getText()方法将返回一个String类型的对象,这个对象包含了文本框内的值。

监听文本框的修改

当用户在Swing文本框中输入或删除文本时,我们可能需要检测文本框的变化并响应它们。我们可以使用DocumentListener来监听文本框的修改,如下代码所示:

JTextField textField = new JTextField();
textField.getDocument().addDocumentListener(new DocumentListener() {
    @Override
    public void changedUpdate(DocumentEvent e) {
        // 文本框的内容已经改变
    }

    @Override
    public void insertUpdate(DocumentEvent e) {
        // 用户已向文本框中插入文本
    }

    @Override
    public void removeUpdate(DocumentEvent e) {
        // 用户已从文本框中删除了一些文本
    }
});

DocumentListener定义了三个方法,它们分别在文本框的内容改变、插入文本和删除文本时被调用。在这些方法中,我们可以执行自己的逻辑来响应文本框的变化。

示例代码

下面是一个示例代码,它创建了一个Swing窗口和一个文本框,并在文本框中输入时监控并展示文本框内的值:

import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class TextFieldExample extends JFrame {
    private JTextField textField;

    public TextFieldExample() {
        super("获取文本框的值示例");
        setSize(500, 100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        textField = new JTextField();
        textField.getDocument().addDocumentListener(new DocumentListener() {
            @Override
            public void changedUpdate(DocumentEvent e) {
                showResult();
            }

            @Override
            public void insertUpdate(DocumentEvent e) {
                showResult();
            }

            @Override
            public void removeUpdate(DocumentEvent e) {
                showResult();
            }
        });

        JPanel panel = new JPanel();
        panel.add(textField);
        setContentPane(panel);
        setVisible(true);
    }

    private void showResult() {
        System.out.println("文本框内的值为:" + textField.getText());
    }

    public static void main(String[] args) {
        new TextFieldExample();
    }
}

这段代码创建了一个Swing窗口,其中包含一个文本框。在输入或删除文本后,它将文本框内的值打印到控制台。

总结

在本文中,我们讨论了如何获取Swing中文本框的值以及如何监听文本框的变化。当你需要从用户那里获取输入时,这些技巧将非常有用。