我使用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")
)中获取按钮的名称吗? (我不想使用anonymous inner type
,因为我要设置几个actionListener)
由于
答案 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个不同的属性名称或者没有。所以不,不可能得到''变量名。