2013-04-30 114 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'變量名。