在Java中,使用Java Foundation Classes (JFC) 创建输入框(TextField)是一种常见的需求,以下是一个详细的步骤,以及如何实现一个基本的输入框。

创建一个基本的输入框
-
导入必要的库
确保你的Java项目中已经导入了Swing库,因为JFC是Swing的一部分。
import javax.swing.*;
-
创建一个主类
创建一个新的Java类,例如
InputFrame。public class InputFrame extends JFrame { // 构造方法 public InputFrame() { // 设置窗口标题 setTitle("输入框示例"); // 设置窗口大小 setSize(300, 100); // 设置窗口布局管理器 setLayout(new FlowLayout()); // 创建输入框 JTextField textField = new JTextField(20); // 将输入框添加到窗口 add(textField); // 设置窗口关闭操作 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口为可见 setVisible(true); } public static void main(String[] args) { // 在事件调度线程中创建并显示窗口 SwingUtilities.invokeLater(new Runnable() { public void run() { new InputFrame(); } }); } } -
运行程序

编译并运行
InputFrame类,你应该会看到一个包含一个输入框的窗口。
输入框属性设置
以下是一些常用的输入框属性设置:
| 属性名称 | 描述 | 示例代码 |
|---|---|---|
setColumns(int columns) |
设置文本框的列数 | textField.setColumns(20); |
setText(String text) |
设置文本框的初始文本 | textField.setText("Hello, World!"); |
setEditable(boolean b) |
设置文本框是否可编辑 | textField.setEditable(false); |
setHorizontalAlignment(int alignment) |
设置文本框中文本的对齐方式 | textField.setHorizontalAlignment(JTextField.CENTER); |
getDocument() |
获取文本框的文档对象,可以用来添加监听器或进行其他操作 | Document doc = textField.getDocument(); |
表格示例
下面是一个表格示例,展示了如何使用JTextField的一些属性:
| 属性 | 描述 | 示例代码 |
|---|---|---|
setColumns(20) |
设置文本框的列数 | textField.setColumns(20); |
setText("Hello") |
设置文本框的初始文本 | textField.setText("Hello"); |
setEditable(false) |
设置文本框不可编辑 | textField.setEditable(false); |
setHorizontalAlignment(JTextField.CENTER) |
设置文本居中对齐 | textField.setHorizontalAlignment(JTextField.CENTER); |
FAQs
Q1:如何使输入框只接受数字?
A1: 你可以使用JTextField的DocumentFilter来实现这个功能,以下是一个示例代码:

DocumentFilter filter = new DocumentFilter() {
@Override
public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
if (string.matches("\d+")) {
super.insertString(fb, offset, string, attr);
}
}
};
textField.setDocument(new DefaultDocumentFilter() {
@Override
public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
if (text.matches("\d+")) {
super.replace(fb, offset, length, text, attrs);
}
}
});
Q2:如何获取输入框中的内容?
A2: 你可以使用JTextField的getText()方法来获取输入框中的内容。
String input = textField.getText();
System.out.println("输入的内容是:" + input);
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/157329.html