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

时间:2015-02-26 06:22:27

标签: java swing input listener

我已经设置了一个JTextField,供用户输入triange的基础(它是一个三角形区域计算器),我需要知道如何将它们的输入存储到变量中。

我尝试了一个动作监听器,但它游戏错误。

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

    }
}

2 个答案:

答案 0 :(得分:1)

定义一个按钮并添加actionListener。

将textfield和变量定义为静态字段,并为变量指定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();

    }
}

答案 1 :(得分:1)

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

textfield.addActionListener(this);

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

String value = textField.getText();

您还可以将JButton添加到用户界面并为其添加相同的ActionListener,因为它可以为用户提供更好的视觉提示

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

有关详细信息,请查看How to Use Text FieldsHow to Use Formatted Text FieldsHow to Use SpinnersHow to Write an Action Listeners