我对java很陌生,一直在努力学习GUI的工作原理。通过一些教程,我设法拼凑了一个使用文本框的程序,希望将我制作的一个计算器作为我的第一个项目。我关注的领域是按钮和动作侦听器,我试图在输入"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 randomn");
}
}
});
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")
;
首先,==
运算符匹配的是Strings
或Objects
reference
,而不是实际值。 String
不是primitive
数据类型,因此您可以使用 ==
比较其值。您需要为此调用equals()
方法:
if(text.equals("q")) {
ta.append("something randomn");
}