2013-03-25 3 views
1

У меня есть приложение для калькулятора, и у меня возникли проблемы с использованием setMnemonic. Я пытаюсь заставить клавиши на клавиатуре связываться с кнопками на калькуляторе. Он продолжает говорить мне < Идентификатор> ожидается. Это страница, на которой я получаю информацию о функции http://docs.oracle.com/javase/tutorial/uiswing/components/button.html.Keyboard Press и Jbutton

Любые идеи, как я могу заставить его работать?

+1

Пожалуйста, покажите полное сообщение об ошибке и укажите, какая строка (и) вызывает ошибку. На самом деле, я не вижу вызова 'setMnemonic (...)' в любом месте вашего кода выше. –

+1

И не сравнивайте строки как this 'createEquasion! =" "', Но вместо этого используйте '." .equals (...) ' – drzymala

ответ

3

Ваша проблема не имеет ничего общего с Swing или мнемониками, и все это связано с попыткой вызвать вызовы методов вне метода или конструктора. Вы не можете сделать это:

public class calculator_ui implements ActionListener { 
    /**Creates a new instance of the window "Buttons"*/ 
    JFrame frame = new JFrame("Buttons"); 

    // .... etc... 
    JButton buteq = new JButton("="); 
    JButton butclear = new JButton("C"); 
    butclear.setMnemonic(KeyEvent.VK_B); // .... **** this is misplaced 
    JButton back = new JButton("<"); 

Вместо этого переместите эту строку кода в конструктор своего класса, где это законно.

В качестве альтернативы, установка мнемоники установит комбинацию альт-клавиш, на которую будет реагировать кнопка. Если вы хотите, чтобы получить fancier и нажмите кнопку реагировать на нажатие не-Alt цифровой ключ, то вы хотите использовать ключевые привязки.