如何从 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
,因为它会给用户更好的视觉提示
我还建议您改用 JSpinner
或 JFormattedTextField
,因为它们具有自动验证数据的功能。
查看 How to Use Text Fields, How to Use Formatted Text Fields, How to Use Spinners and How to Write an Action Listeners 了解更多详情
我已经设置了一个 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
,因为它会给用户更好的视觉提示
我还建议您改用 JSpinner
或 JFormattedTextField
,因为它们具有自动验证数据的功能。
查看 How to Use Text Fields, How to Use Formatted Text Fields, How to Use Spinners and How to Write an Action Listeners 了解更多详情