2013-04-30 160 views
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 methodif(???.equals("translationButton1"))中获得按钮的名称? (我不希望使用anonymous inner type,因为我有几个的ActionListener设置)

感谢

回答

3

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

translationButton1.setActionCommand("translationButton1"); 

,然后检查命令:

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

麻烦,这是更清洁理由为无论什么,然后有什么问题,也不能找到Encoding(不包括东亚和南亚) – mKorbel 2013-04-30 15:07:20

1

您可以通过System.getProperty("file.encoding")

因此,获得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在这里desribed ......这是清洁剂的做法对于这种情况..

+0

是的,这不是考虑所有的编码,可能我与 – user2336315 2013-04-30 14:59:24

1

可以得到按钮的名字..?

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