1

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

如果我设置这个:

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

然后我设置监听器:

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

我知道可以通过使用获得“←”,e.getActionCommand()但我担心如果有人没有与我相同的编码(例如 Cp1252),我不确定获得“←”。

actionPerformed method是否可以在( )中获取按钮的名称if(???.equals("translationButton1")?(我不想使用 ananonymous inner type因为我有几个 actionListener 要设置)

谢谢

4

3 回答 3

4

不,但你可以设置一个动作命令:

translationButton1.setActionCommand("translationButton1");

然后检查命令:

public void actionPerformed(ActionEvent ae) {
    if (ae.getActionCommand.equals("translationButton1") {
        // do something
    }
}
于 2013-04-30T14:54:32.317 回答
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 在这里描述的方法……对于这种情况,这是更清洁的做法……

于 2013-04-30T14:50:56.170 回答
1

有可能获得按钮的名称..?

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

于 2013-04-30T14:52:40.690 回答