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;”然后一个窗口应该打开,但它确实没有。
答案 0 :(得分:1)
在最后一条if语句中使用input.equals("createWindow;")
代替input == "createWindow;"
。
在检查字符串是否相等时,使用==
将使Java查看对象是否在同一内存位置,并且通常不起作用。 .equals()
类是String
类中内置的方法,适用于大多数人的意图,因此我建议您在检查字符串的相等性时始终使用.equals()
。
简而言之,.equals()
将检查字符串的内容是否相等,
==
将检查对象的内存引用是否相等。