Я написал калькулятор в NetBeans и отлично работает. Тем не менее, я должен на самом деле нажать кнопки, чтобы вставлять числа, и я пытаюсь исправить это с помощью KeyListener. У меня есть все мои номера и функциональные кнопки, установленные внутри кнопок JPanel с именем. У меня есть ярлык на дисплее JPanel с именем.Использование KeyListener для калькулятора в NetBeans
Я установил свой класс для реализации KeyListener и вставил методы KeyPressed, -Typed и -Released; однако я застрял оттуда. Я не уверен, как заставить мои кнопки прослушивать событие KeyPressed, и когда он слышит событие - активирует кнопку. Кроме того, мои кнопки называются их номером (например, кнопка «Нуль» имеет нулевое значение, одна кнопка - одна и т. Д.).
Я прочитал, что вам действительно нужно реализовать KeyListener где-то, используя: something.addKeyListener (что-то); , но я не могу понять это.
Могу ли я получить помощь здесь? Я новичок в Java, и это мой первый сольный проект. И дайте мне знать, если я не предоставил достаточную информацию.
EDIT: Большая часть моего кода является NetBeans Generated, и я не могу редактировать инициализацию компонентов, которые, кажется, являются моей проблемой, я думаю?
Мой класс декларации:
public class Calculator extends javax.swing.JFrame implements KeyListener {
//Creates new form Calculator
public Calculator() {
initComponents();
}
Один из моих buttonPressed действий (все одинаковые с изменениями для фактического числа):
private void zeroActionPerformed(java.awt.event.ActionEvent evt) {
if (display.getText().length() >= 16)
{
JOptionPane.showMessageDialog(null, "Cannot Handle > 16 digits");
return;
}
else if (display.getText().equals("0"))
{
return;
}
display.setText(display.getText().concat("0"));
Основной метод поставляется NetBeans:
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Calculator().setVisible(true);
}
});
}
Созданный netComponents() netbeans абсолютно массивный (около 500 строк кода), и я Не редактируйте ни одно из них. Сообщите мне, могу ли я предоставить более полезную информацию.
Можете ли вы разместить свой код? –
Проработали ли вы какие-либо учебники? Вот один из них: http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html –
Я разместил код. И я последовал за 4 различными учебниками, включая тот, который вы указали. Кажется, я не понимаю. Они создают новый KeyListener на JComponent, но я не могу этого сделать. – Nick