获取按钮变量的名称

时间:2013-04-30 14:47:30

标签: java swing variables jbutton

我使用git处理项目,其中几台机器的编码可能不同。

如果我这样设置:

private JButton translationButton1 = new JButton("←");
translationButton1.addActionListener(this);

然后我设置了监听器:

@Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
    }

我知道可以通过使用e.getActionCommand()来获取“←”但我担心如果有人和我编码不一样(例如Cp1252),我肯定不会得到“←”。

可以在actionPerformed methodif(???.equals("translationButton1"))中获取按钮的名称吗? (我不想使用anonymous inner type,因为我要设置几个actionListener)

由于

3 个答案:

答案 0 :(得分:4)

不,但您可以设置操作命令:

translationButton1.setActionCommand("translationButton1");

然后检查命令:

public void actionPerformed(ActionEvent ae) {
    if (ae.getActionCommand.equals("translationButton1") {
        // do something
    }
}

答案 1 :(得分:1)

您可以通过encoding

在用户的计算机上获取System.getProperty("file.encoding")

所以对你来说代码应该是这样的:

@Override
    public void actionPerformed(ActionEvent e) {
    String encoding =System.getProperty("file.encoding");
    if (encoding.equals("UTF-8"))
       // do something
    else if (encoding.equals("Cp1252"))
       // do something else
    // else if (encoding.equals("someEncoding"))
       do something else yet
    }

尽管如此,我还建议你使用@whiskeyspider在这里描述的方法......对于这种情况来说这是更清洁的做法..

答案 2 :(得分:1)

  

可以获取按钮的名称..?

1个按钮可能被分配给3个不同的属性名称或者没有。所以不,不可能得到''变量名。