java 获取button的值,从jButton获取文本值

本文探讨了Java中按钮点击事件代码为何if(jButton1.getText()==X)不生效,而if(jButton1.getText().equals(X))却有效。作者揭示了可能的原因——字符串比较的equals()方法与==的区别,以及版本间可能存在的String对象内部缓存现象。解决办法是确保所有版本使用equals()进行内容比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

So I need to simply check whether a clicked button's text is "X" or "O" (making tic tac toe)

This code doesn't work:

if (jButton1.getText()=="X")

However the following code does work:

String jButText = jButton1.getText();

if (jButText=="X")

Why doesn't the first bit of code work when the second does? Does it need to be something more like if (jButton1.getText().toString=="X")? By the way, I don't think toString exists in Java. That is just somewhat the equivalent in Visual Basic, which is what I normally use to create GUIs.

解决方案

This behavior is not reproducible in java 1.7.0_45 or 1.7.0_25, it might be a weird occurrence of String interning for your java version.

In order for your code to work properly on all java versions you have to use equals()

== compares objects meanwhile .equals() compares the content of the string objects.

jButton1.getText().equals("X")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值