如何从 JTextField 获取输入,然后将其存储在变量中?

How Do I Get Input From A JTextField, Then Store It In A Variable?

我已经设置了一个 JTextField,供用户输入三角形的底边(这是一个三角形面积计算器),我需要知道如何将他们的输入存储到一个变量中。

我尝试了一个动作侦听器,但它出错了。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;

import javax.swing.*;

public class Triangle extends JFrame implements ActionListener{

static Scanner sc = new Scanner(System.in);

public static void findingTriangle(){

    JFrame jf = new JFrame();
    JTextField textfield = new JTextField("", 30);
    JPanel panel = new JPanel();
    JLabel jl = new JLabel("Triangle Area Calculator");
    jf.setSize(500, 500);
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.add(panel);
    panel.add(jl);
    panel.add(textfield);
    }

    public static void main(String[] args){

        findingTriangle();

    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

    }
}

定义一个按钮并添加 actionListener。

将文本字段和您的变量定义为静态字段并将 textarea.getText() 分配给您的变量:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Triangle extends JFrame implements ActionListener {

    static Scanner sc = new Scanner(System.in);
    static String s;
    static JTextField textfield;
    static JButton jButton;

    public static void findingTriangle() {

        JFrame jf = new JFrame();
        textfield = new JTextField("", 30);
        jButton = new JButton("Click");
        jButton.addActionListener(new Triangle());
        JPanel panel = new JPanel();
        JLabel jl = new JLabel("Triangle Area Calculator");
        jf.setSize(500, 500);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.add(panel);
        panel.add(jl);
        panel.add(textfield);
        panel.add(jButton);
    }

    public static void main(String[] args) {

        findingTriangle();

    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        s = textfield.getText();

    }
}

您可以将 ActionListener 附加到 JTextField,当用户按下 Enter 按钮时,将触发 actionPerfomed 方法.

textfield.addActionListener(this);

从那里,您可以提取用户使用 JTextField#getText 输入的值。

String value = textField.getText();

您还可以将 JButton 添加到 UI 并附加相同的 ActionListener,因为它会给用户更好的视觉提示

我还建议您改用 JSpinnerJFormattedTextField,因为它们具有自动验证数据的功能。

查看 How to Use Text Fields, How to Use Formatted Text Fields, How to Use Spinners and How to Write an Action Listeners 了解更多详情