【问题标题】:Unable to getText the value of string无法获取文本字符串的值
【发布时间】:2013-08-12 07:13:45
【问题描述】:

我正在准备一个简单的系统作为我的任务,我面临一个问题,我不知道如何getText 字符串的值。我知道如何使用整数,但不知道如何使用字符串。

如果我想获得一个整数值,我会在我的代码中使用Integer.parseInt(t2.getText()); 我已将我的代码添加到其中。

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

public class tollRate extends JFrame implements ActionListener {

    JLabel L1 = new JLabel("Please insert your origin (in capital letter)");
    JTextField t1 = new JTextField(20);
    JLabel L2 = new JLabel("Please insert your destination (in capital letter)");
    JTextField t2 = new JTextField(20);
    JLabel L3 = new JLabel("Your vehicle class");
    JTextField t3 = new JTextField(1);
    JButton b1 = new JButton("Calculate");
    JButton b2 = new JButton("Exit");
    JLabel L4 = new JLabel("Class 0 : Motorcycles, bicycles, or vehicles with "
            + "2 or less wheels" + "\nClass 1 : Vehicles wit 2 axles and 3 "
            + "or 4 wheels excluding taxis" + "\nClass 2 : Vehicles with 2 "
            + "axles and 5 or 6 wheels excluding busses" + "\n Class 3 : "
            + "Vehicles with 3 or more axles" + "\nClass 4 : Taxis"
            + "\nClass 5 : Buses");
    JPanel p1 = new JPanel();
    JPanel p2 = new JPanel();
    JPanel p3 = new JPanel();
    JPanel p4 = new JPanel();
    JPanel p5 = new JPanel();
    String i, j, k;

    tollRate() {
        JFrame a = new JFrame();
        setTitle("Highway Toll Rates System");
        setSize(600, 400);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new GridLayout(5, 2));
        p1.setLayout(new GridLayout(1, 2));
        p1.add(L1);
        p1.add(t1);
        p2.setLayout(new GridLayout(1, 2));
        p2.add(L2);
        p2.add(t2);
        p3.setLayout(new GridLayout(1, 2));
        p3.add(L3);
        p3.add(t3);
        p4.setLayout(new FlowLayout());
        p4.add(b1);
        p4.add(b2);
        p5.setLayout(new FlowLayout());
        p5.add(L4);
        add(p1);
        add(p2);
        add(p3);
        add(p4);
        add(p5);
        b1.addActionListener(this);
        b2.addActionListener(this);
    }

    public void actionPerformed(ActionEvent a) {
        Object source = a.getSource();
        if (source == b2) {
            this.dispose();
        } else if (source == b1) {
            i = Integer.parseInt(t1.getText());
            j = Integer.parseInt(t2.getText());
            k = Integer.parseInt(t3.getText());
        }
    }

    public static void main(String[] args) {
        tollRate a = new tollRate();
    }
}

【问题讨论】:

  • 试图找出字符串是什么?使用getText()返回的String即可,不需要做任何事情。

标签: java string swing jtextfield gettext


【解决方案1】:

首先String i, j, k;

     i = Integer.parseInt(t1.getText());
     j = Integer.parseInt(t2.getText());
     k = Integer.parseInt(t3.getText());

这是错误的。您正在为 int 分配字符串。先纠正他们。如果你想要 int 值,最好使用

int i, j, k; 并使用trim() 以避免额外的空格。

     i = Integer.parseInt(t1.getText().trim());
     j = Integer.parseInt(t2.getText().trim());
     k = Integer.parseInt(t3.getText().trim());

在你的情况下使用如下

        i = t1.getText();
        j = t2.getText();
        k = t3.getText();

【讨论】:

  • 谢谢,我可以看到我做错了,但我不知道如何将它分配给字符串。我该怎么办?这是我现在唯一坚持的部分。我想要得到的文本是字符串。所以,我相信声明是正确的。只是 getText 的方法是错误的。您能提供更多帮助吗?
  • @NoIdeaForName 我想你可以阅读我的回答。你没看我回答的最后一部分吗?
  • @Ruchira 您在我发表评论后对其进行了编辑...好吧,这很好,但他已经在做 String i, j, k;在成员部分
【解决方案2】:

要将字符串分配给字符串,您需要做的就是

     i = t1.getText();
     j = t2.getText();
     k = t3.getText();

因为您已经将它们创建为字符串

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 2020-12-12
    • 2011-12-07
    • 1970-01-01
    • 2023-01-22
    相关资源
    最近更新 更多