我刚开始学java,对JButton的setText()和setActionCommand()的之间的关系不清楚,所以研究了下,发现对于同一个对象,在使用setActionCommand()设定ActionCommand之前,ActionComm的值会随着setText()变化。而在调用setActionCommand()设定ActionCommand之后,ActionCommand的值和Text的值相互独立了,调用setText()就不会改变ActionCommand的值了。代码如下;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test {
public static void main(String[] args) {
JButton but = new JButton("test");
System.out.println("*************************"); //在构造函数中给定字符串,两个值相等
System.out.println("but.getActionCommand()="+but.getActionCommand());
System.out.println("but.getText()="+but.getText()+"\n\n");
System.out.println("********but.setText(\"\")**********"); //<span style="font-family:Arial, Helvetica, sans-serif;">setText("")指定空值,ActionCommand也变为空值</span>
but.setText("");
System.out.println("but.getActionCommand()="+but.getActionCommand());
System.out.println("but.getText()="+but.getText()+"\n\n");
System.out.println("********but.setText(\"test\")*******"); //setText("test")指定"test",Actioncommand也会变为"test";
but.setText("test");
System.out.println("but.getActionCommand()="+but.getActionCommand());
System.out.println("but.getText()="+but.getText()+"\n\n");
System.out.println("*****but.setActionCommand(\"\")*****"); //<span style="font-family: Arial, Helvetica, sans-serif;">setActioncommand("")指定空值,text不会变;</span>
but.setActionCommand("");
System.out.println("but.getActionCommand()="+but.getActionCommand());
System.out.println("but.getText()="+but.getText()+"\n\n");
System.out.println("*******but.setText(\"\")************"); <span style="font-family: Arial, Helvetica, sans-serif;">//</span><span style="font-family: Arial, Helvetica, sans-serif;">setTest("")指定空值</span>
but.setText("");
System.out.println("but.getActionCommand()="+but.getActionCommand());
System.out.println("but.getText()="+but.getText()+"\n\n");
System.out.println("*****but.setText(\"test\")**************"); //再用setText("test"),ActionCommand就不会跟着变了
but.setText("test");
System.out.println("but.getActionCommand()="+but.getActionCommand());
System.out.println("but.getText()="+but.getText()+"\n\n");
}
}
运行结果:
********but.setText("")**********
but.getActionCommand()=
but.getText()=
********but.setText("test")*******
but.getActionCommand()=test
but.getText()=test
*****but.setActionCommand("")*****
but.getActionCommand()=
but.getText()=test
*******but.setText("")************
but.getActionCommand()=
but.getText()=
*****but.setText("")**************
but.getActionCommand()=
but.getText()=text