從 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