当我将 JTextField 的 getText 函数与相等的字符串进行比较时,它不返回 true

问题描述 投票:0回答:1

所以我有这个计算器(在Java上),当我按下按钮时,我想检查 JTextField(pantalla) 中是否只有“0”,这样我可以用数字替换它,而不是连接我按下的按钮...我注意到的是,当我尝试时,它每次都会返回 false

我尝试将 .getText() 保存到字符串变量中,然后将其与文字“0”进行比较,我什至尝试将文本放置到与 .setText() 比较上方的“0”1 行。

pantalla = new JTextField();
pantalla.setHorizontalAlignment(SwingConstants.RIGHT);
pantalla.setBounds(72, 19, 144, 25);
contentPane.add(pantalla);
pantalla.setColumns(10);
pantalla.setText("0");
        
JButton btn0 = new JButton("0");
btn0.addActionListener(new ActionListener() 
{
    public void actionPerformed(ActionEvent e) 
    {
    pantalla.setText("0");
    System.out.println(pantalla.getText() == "0");
//  pantalla.setText(pantalla.getText() + btn0.getText());
    }
});

这是刚刚显示的代码的输出:image(https://i.stack.imgur.com/g62Sp.png)

java calculator jtextfield
1个回答
0
投票

当您比较字符串的内容时,您应该使用

equals()
而不是
==
(比较对象的引用)。阅读更多这里这里

因此,更改您的代码:

System.out.println(pantalla.getText() == "0");

System.out.println("0".equals(pantalla.getText()));

你就会得到想要的结果。

© www.soinside.com 2019 - 2024. All rights reserved.