首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Java中JTextField(或其字符串)的最后一个字符

获取Java中JTextField(或其字符串)的最后一个字符
EN

Stack Overflow用户
提问于 2013-08-16 00:51:45
回答 1查看 1.2K关注 0票数 0

我正在尝试构建一个可以与JButtons一起用于数字和算术操作数的计算器。每次单击JButton时,字符串变量( JTextField.The _ in )都会被更新并作为不可编辑的参数进行传递。JTextField显示要作为calculation.When的参数传入的数字。如果操作数被单击,则下一个数字应重置JTextField (即,单击4时为"678+“,JTextField应重置为"4").The问题是,它每次都会这样做,而不管后面是否存在"+".A代码片段。

代码语言:javascript
复制
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Gui extends JFrame {

    private JButton but1; 
    private JButton but6;
    private JButton plus;
    private JButton equal;
    private JTextField text;
    public static String textin;
    public double num1;
    public double num2;
    public String operand;

    public Gui() {
        super("Calculator");
        setLayout(new FlowLayout());

        textin = "";
        num1 = 0;
        num2 = 0;
        but1 = new JButton("1");
        but6 = new JButton("6");
        plus = new JButton("+");
        equal = new JButton("=");
        operand = "";

        text = new JTextField(20);
        text.setEditable(false);
        add(text);
        add(but6);
        add(but1);
        add(equal);
        add(plus);

        but1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                textin += "1";
                text.setText(textin);
            }
        });

        but6.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                if(textin.length()!=0&&textin.substring(textin.length()-1)!="+"){
                    textin += "6";
                    text.setText(textin);
                    textin = "6";
                    text.setText(textin);
                } else {
                    textin = "6";
                    text.setText(textin);
                }
            }
        });

        plus.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                num2 = Double.parseDouble(textin);
                num1 = num1 + num2;
                textin += "+";
                text.setText(textin); 
                operand = "+";
            }
        });

        equal.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                if(tel == "+") {
                    num2 = Double.parseDouble(textin);
                    num1 = num1+num2;
                    JOptionPane.showMessageDialog(null,String.format("%f",num1));
                } else {
                    JOptionPane.showMessageDialog(null,String.format("error"));
                }
            }
        });
    }
}

but1是一个普通的按钮,而but6是一个只能在+.Unfortunately之后重置JTextField的按钮,它每次都会重置它。我删除了simplicity.The问题的其余代码,可能是在but6 JButton.Only的if语句中,executed.It没有检查"+“是否存在,或者not.Could,有人解释了为什么会这样吗?

EN

回答 1

Stack Overflow用户

发布于 2013-09-04 16:03:59

也许您的问题在于您正在执行以下操作:textin.substring(textin.length()-1)!="+"),而您可能需要执行此!textin.substring(textin.length()-1).equals("+")操作。

您应该使用equals()方法来检查它们是否相同。

检查另一个问题:Java String.equals versus ==

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18257543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档