我正在编写一个程序,您在其中键入数字,它会告诉您是对还是错。这是代码。

static int num = 1;

JPanel pnl = new JPanel();
        JTextField numSlot = new JTextField(5);
        pnl.add(new JLabel("Enter the number:"));
        pnl.add(numSlot);

        int k = JOptionPane.showConfirmDialog(null, pnl, "Enter your code", -1);
        if (k == JOptionPane.OK_OPTION) {

            if(numSlot.getText().equals(num)) {
                JOptionPane.showMessageDialog(null, "It Worked", "It Worked", -1);
            } else {
                JOptionPane.showMessageDialog(null, "Sorry", "Sorry", -1);
            }
        }
        if (k == JOptionPane.CANCEL_OPTION) {

        } else {

        }


使用此代码,即使我输入1,它也总是会输出抱歉,所以我做错了什么?如果是这样,您可以回答这个问题,并尽量不要粗鲁,我是一个初学者。

最佳答案

使用

if(numSlot.getText().equals(num+"")){


代替

if(numSlot.getText().equals(num)) {


作为num+""将其从int转换为String
否则,您可以使用Integer.toString(num)String.valueOf(num)

说明

numSlot.getText()返回String,并且num为int,因此numSlot.getText().equals(num)始终为false,因为String值不能与整数值相同。

09-27 17:11