是否'.setText();'触发'textChanged'吗?

时间:2018-08-13 22:24:32

标签: java eclipse swing

标题说。

String btnTxt = "must";
btn.setText(btnTxt);

//does this triggers event also?
btnTxt = "change";

如果不触发事件该怎么办?

我应该为btnTxt添加一个侦听器吗?

2 个答案:

答案 0 :(得分:0)

setText()方法仅设置按钮标题,而不触发阳离子。是的,使用动作监听器来触发按钮

btn.addActionListener(new ActionListener() { 
  public void actionPerformed(ActionEvent e) { 
    // Your code 
  } 
} );

答案 1 :(得分:0)

通过setText设置按钮的文本会将值分配给按钮的内部属性,它不会创建指向String对象的链接,并且由于btnText = "change"会创建一个新的{{ 1}}无论如何,创建“将会”的任何引用都会丢失-因此总的答案是-不。

如果要更改按钮的文本,则必须使用String

关于“为什么”这些无效的信息,我还有很多其他细节,问题的基本答案仍然是“否”

如果要监视text属性的更改,则需要在按钮本身上使用setText