SWING - JTextField 类

简介

JTextField 类是一个允许编辑单行文本的组件。


类声明

以下是 javax.swing.JTextField 类的声明 −

public class JTextField
   extends JTextComponent
      implements SwingConstants

字段

以下是 javax.swing.JList 类的字段 −

  • static String notifyAction − 用于发送字段内容已被接受的通知的操作名称。


类构造函数

序号 构造函数 & 描述
1

JTextField()

构造一个新的 TextField。

2

JTextField(Document doc, String text, int columns)

构造一个使用给定文本存储模型和给定列数的新 JTextField。

3

JTextField(int columns)

构造一个具有指定列数的新空 TextField。

4

JTextField(String text)

构造一个使用指定文本初始化的新 TextField。

5

JTextField(String text, int columns)

构造一个使用指定文本和列初始化的新 TextField。


类方法

序号 方法 & 描述
1

protected void actionPropertyChanged(Action action, String propertyName)

更新文本字段的状态以响应关联操作中的属性更改。

2

void addActionListener(ActionListener l)

添加指定的动作侦听器以接收来自该文本字段的动作事件。

3

protected void configurePropertiesFromAction(Action a)

设置此文本字段的属性以匹配指定操作中的属性。

4

protected PropertyChangeListener createActionPropertyChangeListener(Action a)

创建并返回一个 PropertyChangeListener,它负责侦听来自指定 Action 的更改并更新相应的属性。

5

protected Document createDefaultModel()

如果未明确给出,则创建要在构造时使用的模型的默认实现。

6

protected void fireActionPerformed()

通知所有已注册对此事件类型的通知感兴趣的侦听器。

7

AccessibleContext getAccessibleContext()

获取与此 JTextField 关联的 AccessibleContext。

8

Action getAction()

返回此 ActionEvent 源当前设置的 Action,如果未设置 Action,则返回 null。

9

ActionListener[] getActionListeners()

返回使用 addActionListener() 添加到此 JTextField 的所有 ActionListener 的数组。

10

Action[] getActions()

获取编辑器的命令列表。

11

int getColumns()

返回此 TextField 中的列数。

12

protected int getColumnWidth()

返回列宽。

13

int getHorizontalAlignment()

返回文本的水平对齐方式。

14

BoundedRangeModel getHorizontalVisibility()

获取文本字段的可见性。

15

Dimension getPreferredSize()

返回此 TextField 所需的首选大小尺寸。

16

int getScrollOffset()

获取滚动偏移量,以像素为单位。

17

String getUIClassID()

获取 UI 的类 ID。

18

boolean isValidateRoot()

来自文本字段本身的重新验证调用将通过验证文本字段来处理,除非文本字段包含在 JViewport 中,在这种情况下返回 false。

19

protected String paramString()

返回此 JTextField 的字符串表示形式。

20

void postActionEvent()

通过将在此文本字段上发生的动作事件分派给任何已注册的 ActionListener 对象来处理它们。

21

void removeActionListener(ActionListener l)

删除指定的动作侦听器,使其不再接收来自该文本字段的动作事件。

22

void scrollRectToVisible(Rectangle r)

向左或向右滚动字段。

23

void setAction(Action a)

为 ActionEvent 源设置 Action。

24

void setActionCommand(String command)

设置用于动作事件的命令字符串。

25

void setColumns(int columns)

设置此 TextField 中的列数,然后使布局无效。

26

void setDocument(Document doc)

将编辑器与文本文档相关联。

27

void setFont(Font f)

设置当前字体。

28

void setHorizontalAlignment(int alignment)

设置文本的水平对齐方式。

29

void setScrollOffset(int scrollOffset)

设置滚动偏移量,以像素为单位。


继承的方法

这个类继承了以下类的方法 −

  • javax.swing.text.JTextComponent
  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JTextField 示例

D:/ > SWING > com > tutorialspoint > gui > 中使用您选择的任何编辑器创建以下 Java 程序

SwingControlDemo.java

package com.tutorialspoint.gui;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showTextFieldDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showTextFieldDemo(){
      headerLabel.setText("Control in action: JTextField"); 

      JLabel  namelabel= new JLabel("User ID: ", JLabel.RIGHT);
      JLabel  passwordLabel = new JLabel("Password: ", JLabel.CENTER);
      final JTextField userText = new JTextField(6);
      final JPasswordField passwordText = new JPasswordField(6);      

      JButton loginButton = new JButton("Login");
      loginButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {     
            String data = "Username " + userText.getText();
            data += ", Password: " + new String(passwordText.getPassword()); 
            statusLabel.setText(data);        
         }
      }); 
      controlPanel.add(namelabel);
      controlPanel.add(userText);
      controlPanel.add(passwordLabel);       
      controlPanel.add(passwordText);
      controlPanel.add(loginButton);
      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。 转到 D:/ > SWING 并键入以下命令。

D:\SWING>javac com\tutorialspoint\gui\SwingControlDemo.java

如果没有报错,说明编译成功。 使用以下命令运行程序。

D:\SWING>java com.tutorialspoint.gui.SwingControlDemo

验证以下输出。

Swing JTextField

❮ SWING 控件