java - 如果语句在操作监听器中使用时不起作用

标签 java swing actionlistener

我对 java 很陌生,一直在努力学习 GUI 的工作原理。通过一些教程,我设法拼凑出一个使用文本框的程序,希望将我制作的计算器作为我的第一个项目。我关注的区域是按钮和 Action 监听器,我试图在其中输入“calc”时获得额外的响应。

我尝试在程序外部初始化额外的响应,但由于在内部调用字符串,我无法让它工作。我也尝试在外面调用字符串,但仍然不起作用。我有一个想法,做任何超出此范围的事情都需要单独调用函数,但我希望首先弄清楚这个较小的部分。

    static JTextField tf;
    static JFrame frame;
    static JPanel panel;
    static JTextArea ta;
    int count;
    int num1;
    int num2;
    int exp;
    char operator;
    double answer;

    static void GUI() {
        frame = new JFrame("Thank you for reading this");
        panel = new JPanel();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400,400);
        JButton button = new JButton("Test");
        tf = new JTextField(15);
        panel.add(tf);
        panel.add(button);

        JTextArea ta = new JTextArea();
        ta.setEditable(false);

        button.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                String text = tf.getText();
                ta.append(text+"\n");
                if(text == "q") {
                    ta.append("something random\n");
                }
            }
        });

        frame.getContentPane().add(BorderLayout.CENTER, ta);
        frame.getContentPane().add(BorderLayout.SOUTH, panel);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        GUI();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }

}

当在文本字段中输入“calc”时,我希望看到“随机的东西”出现在“calc”下方。到目前为止,我没有收到任何 if 语句

最佳答案

比较对象的值相等性时,请使用 equals 而不是 ==,因为 == 正在检查引用相等性。

所以不要写 text == "q" 而是写 text.equals("q");

关于java - 如果语句在操作监听器中使用时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56401185/

相关文章:

java - 使用 setValueAt 更新 JTable

java - 当使用 GUI 时,我应该以不同的方式进行编译吗?

java - 格式化 GUI/添加操作监听器时遇到问题

java - MySQL Java 使用 JComboBox 设置第二个 JComboBox

Java——素数算法返回 16

Java webapp 在 Linux 上产生 StackOverflow 异常

java - 为什么控制台从 JTextArea (Swing) 打印错误文本

Java ActionListener 错误 : incompatible types

java - 无法在 android studio 中打开图像(找不到文件)

Java 在包含空格的字符串中用逗号分割