我对 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/