尝试在点击时更改按钮名称

时间:2018-05-16 13:13:12

标签: java swing

我有一个按钮,我想在第二次点击时做一些不同的事情。为此,我点击按钮处理程序检查按钮的名称,并在第一次按下时更改此名称。

按钮名称不会改变,我是否需要重新包装或更新它所属的按钮面板?

@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;
    }
}

1 个答案:

答案 0 :(得分:3)

关于this answer

Component.setName(..)在JDK中主要由外观实现类用于为每个组件设置类似ID的字符串,例如: BasicOptionPaneUI可能会在按钮组件上调用它,将其名称设置为“OptionPane.button”。

因此,如果您想更改标签文字,则需要使用setText()而不是setName()

JButton btn=new JButton("Text Before the change");
btn.setText("This text got changed!")