Я не уверен, что я здесь делаю неправильно. Я пытаюсь создать базовую командную строку с помощью JFrame, которая в будущем я хочу создать кучу функций, которые будут выполняться на основе ввода пользователя, однако, когда я пытаюсь сравнить ActionCommand с строкой или переменной, это не похоже на работу:Java getActionCommand() не может сравниться с строкой, использующей оператор if?
`
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class GUI extends JFrame{
private JTextField cmd;
public GUI(){
super("Command Line V2"); //Window title
setLayout(new FlowLayout()); //Set layout
cmd = new JTextField("Enter Command"); //Make cmd a JTextField
add(cmd); //Add cmd to the screen
//Adding action listeners
cmdHandler handler = new cmdHandler();
cmd.addActionListener(handler);
}
private class cmdHandler implements ActionListener{
public void actionPerformed(ActionEvent event){
String butt = "Whut";
if(event.getSource()==cmd){
if(event.getActionCommand()==butt){
System.out.println("Yay");
}else{
System.out.println("uh dear");
System.out.println(event.getActionCommand());
}
}
}
}`
Это страница GUI.java, но только упаковывают это нужно, вот страница main.java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.FlowLayout;
public class Main {
public static void main(String args[]){
GUI g = new GUI();
g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g.setSize(275,180);
g.setVisible(true);
g.setResizable(false);
}
}
При открытии откроется окно и появится JTextBox: «Введите команду», как только я напишу в командной строке EXACT LY, что оператор if пытается сравнить «event.getActionCommand()», он все равно выводит «uh dear» (что он делает, если он не сравнивает его ни с чем)
Как я могу предположить чтобы исправить это? Спасибо.