如何使按钮读取文本并执行特定功能

时间:2015-04-30 02:17:25

标签: java

public class Main extends JFrame{

    public JTextArea ta = new JTextArea();

    public JButton run = new JButton("Run Code");

    public Main(){
        setSize(800, 600);
        setTitle("SPL Editor");
        setVisible(true);
        setResizable(false);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        add(ta);
        add(run, BorderLayout.SOUTH);

        run.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                String input = ta.getText();

                if (input == "createWindow;"){
                    JFrame f = new JFrame("Made with the SPL Language");

                    f.setVisible(true);
                    f.setSize(800, 600);
                    f.setLocationRelativeTo(null);
                    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                }
            }
        });
    }

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

我试图让TextArea中的那一行打开一个窗口,但它不会工作,我已经开始编程语言,我需要帮助。所以基本上它的>说,如果输入是“createWindow;”然后一个窗口应该打开,但它确实没有。

1 个答案:

答案 0 :(得分:1)

在最后一条if语句中使用input.equals("createWindow;")代替input == "createWindow;"

在检查字符串是否相等时,使用==将使Java查看对象是否在同一内存位置,并且通常不起作用。 .equals()类是String类中内置的方法,适用于大多数人的意图,因此我建议您在检查字符串的相等性时始终使用.equals()

简而言之,.equals()将检查字符串的内容是否相等, ==将检查对象的内存引用是否相等。