我有一个按钮,我想在第二次点击时做一些不同的事情。为此,我点击按钮处理程序检查按钮的名称,并在第一次按下时更改此名称。
按钮名称不会改变,我是否需要重新包装或更新它所属的按钮面板?
@Override
public void actionPerformed(ActionEvent e) {
switch(((JButton) e.getSource()).getName()) {
case "TR":
((JButton) e.getSource()).setName("Done TR");
awaitPoints("TR");
break;
case "Done TR":
CP.ComputeTransfo();
((JButton) e.getSource()).setName("TR Complete");
((JButton) e.getSource()).setEnabled(false);
break;
default:
System.out.println("ERROR:TFM01");
System.exit(0);
break;
}
}
答案 0 :(得分:3)
Component.setName(..)在JDK中主要由外观实现类用于为每个组件设置类似ID的字符串,例如: BasicOptionPaneUI可能会在按钮组件上调用它,将其名称设置为“OptionPane.button”。
因此,如果您想更改标签文字,则需要使用setText()
而不是setName()
JButton btn=new JButton("Text Before the change");
btn.setText("This text got changed!")