从 JTextField 中获取值

Rashmi Patidar 2021年10月2日
从 JTextField 中获取值

Java 编程提供实用程序和函数来绘制各种实时图像和组件以进行可视化表示。这些类提供了各种方法来设置封装在各种类中的布局、大小、颜色。这些函数成为图形编程的基础。一些包包含图形实用程序类。java.awt javax.swing 包提供图形和小程序功能。

下面是演示相同内容的代码块。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ValueFromJTextField extends JFrame implements ActionListener
{
    JTextField textField;
    JButton submitButton = new JButton("Submit");

    public ValueFromJTextField()
    {
        JPanel myPanel = new JPanel();
        add(myPanel);
        myPanel.setLayout(new GridLayout(3, 2));
        textField = new JTextField();
        myPanel.add(textField);
        myPanel.add(submitButton);
        submitButton.addActionListener(this);
    }

    public void actionPerformed(ActionEvent actionEvent)
    {
        if (actionEvent.getSource() == submitButton) {
            String data = textField.getText(); 
            System.out.println(data);
        }
    }

    public static void main(String args[])
    {
        ValueFromJTextField g = new ValueFromJTextField();
        g.setLocation(10, 10);
        g.setSize(300, 300);
        g.setVisible(true);
    }
}

在上面的代码块中,实际的执行是从 main 方法开始的。

首先,使用 new 关键字实例化 ValueFromJTextField 类的实例。它在内部调用类的公共构造函数。在构造函数中,一些变量被初始化。JPanel 的一个实例被实例化,最初创建一个带有双缓冲区的新面板。该类存在于 javax.swing 包中,并且具有足够的特性来表示 Java 中的图形。add 方法存在于 Container 类中,存在于 java.awt 包中。add 方法将 Component 实例作为参数,然后将传递的实例附加到 Container 组件的末尾。当传递的元素为空值时,该函数会抛出 NullPointerException

将面板添加到容器后,可以使用 setLayout 函数设置大小。Layout 的实例被传递给函数并且不返回任何内容。GridLayout 构造函数设置行和列的值。在网格中,使用 add 方法创建并插入一个文本字段。在文本字段旁边,一个 JBotton 实例被创建并插入到面板中。作为最后一个语句,一个动作监听器被添加到提交按钮实例。

在构造函数下方,实现了一个动作侦听器方法。该函数采用 ActionEvent 类的实例。该类描述了在组件上执行的一种操作或事件。在代码块内,使用 getSource 方法检查源事件。所以动作事件实例有一个预定义的函数来检查事件的来源,它似乎是从哪里生成的。因此,有条件地检查源是否来自按钮实例。

textField 实例习惯于调用 getText 方法。此函数返回文本字段组件中存在的文本,并在文档为空值时抛出 NullPointerException。最后,使用 println 函数将文本字符串打印在控制台输出中。

上面代码块的控制台输出如下所示。

Hi, This is Jack Daniel

Container 的布局如下所示。

从 JTextField 获取值

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - Java GUI