2013-04-30 5 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 method (if(???.equals("translationButton1"))? (Я не хочу использовать anonymous inner type, потому что у меня есть несколько ActionListener установить)

Благодаря

ответ

3

Нет, но вы можете установить команду действий:

translationButton1.setActionCommand("translationButton1"); 

А затем проверить для команды:

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

это причина для анонимного, тогда есть какая-то проблема, и я не могу найти кодировку (исключая восточную и южную Азию) – mKorbel

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 уже здесь ... мы проделали это уборщик практика в этом случае ..

+0

Да, это чище, чем учитывая все кодировки, которые могут меня проблемы с – user2336315

1

Можно получить название кнопки ..?

1 кнопка может быть назначена 3 различным именам атрибутов или ни одному. Так что нет, невозможно получить имя переменной.

Смежные вопросы