上一篇
在Java中读取文本框内容,通常使用Swing组件的
getText()方法,对JTextField或JTextArea对象调用
textField.getText()即可获取输入文本,需结合事件监听(如按钮点击)触发读取操作,确保实时获取用户输入的数据。
Swing应用程序中读取文本框(JTextField)
Swing是Java标准GUI工具包,通过JTextField组件实现文本框。
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SwingExample {
public static void main(String[] args) {
JFrame frame = new JFrame("文本框示例");
JTextField textField = new JTextField(20); // 创建文本框
JButton button = new JButton("读取内容");
// 按钮点击事件
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String content = textField.getText(); // 读取文本框内容
JOptionPane.showMessageDialog(frame, "输入内容: " + content);
}
});
frame.setLayout(new java.awt.FlowLayout());
frame.add(textField);
frame.add(button);
frame.setSize(300, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
关键方法:
textField.getText():获取文本框当前文本。
JavaFX应用程序中读取文本框(TextField)
JavaFX是新一代Java GUI框架,使用TextField组件。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaFXExample extends Application {
@Override
public void start(Stage stage) {
TextField textField = new TextField();
Button button = new Button("读取内容");
button.setOnAction(e -> {
String content = textField.getText(); // 读取文本框内容
System.out.println("输入内容: " + content);
});
VBox root = new VBox(10, textField, button);
Scene scene = new Scene(root, 300, 100);
stage.setScene(scene);
stage.setTitle("文本框示例");
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
关键方法:
textField.getText():与Swing类似,直接获取文本。
Web应用中读取文本框(Servlet/JSP)
在Web开发中,通过HTTP请求获取表单文本框的值。

HTML表单(JSP示例):
<form action="read-text" method="POST">
<input type="text" name="userInput">
<button type="submit">提交</button>
</form>
Servlet处理请求:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class TextServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userInput = request.getParameter("userInput"); // 读取文本框内容
System.out.println("用户输入: " + userInput);
response.getWriter().write("已收到输入: " + userInput);
}
}
关键方法:

request.getParameter("userInput"):根据输入框的name属性获取值。
注意事项
-
空值处理:
使用前检查内容是否为空,避免NullPointerException:String content = textField.getText(); if (content != null && !content.trim().isEmpty()) { // 处理有效输入 } -
线程安全:
- Swing和JavaFX的UI操作必须在事件调度线程(EDT)中执行。
- Web应用注意Servlet的线程安全问题(推荐使用局部变量)。
-
安全性:

Web应用中对用户输入进行验证和过滤,防止SQL注入或XSS攻击。
-
实时监听(可选):
- Swing:使用
textField.getDocument().addDocumentListener() - JavaFX:使用
textField.textProperty().addListener()
- Swing:使用
- Swing/JavaFX:直接调用
getText()方法。 - Web应用:通过
HttpServletRequest.getParameter()获取表单数据。 - 始终验证输入数据的有效性和安全性,确保程序健壮性。
引用说明:
本文代码示例基于Oracle官方文档的Swing指南、JavaFX教程及Jakarta Servlet规范,更多细节可参考:
- Oracle Swing Tutorial
- JavaFX Documentation
- Jakarta Servlet Specification
