我在 NetBeans 中编写了一个计算器,它运行良好。但是,我必须实际单击按钮来插入数字,并尝试使用 KeyListener 来解决这个问题。我将所有数字和功能按钮都设置在一个名为按钮的 JPanel 中。我在一个名为 display 的 JPanel 中有我的显示标签。
我将我的类设置为实现 KeyListener 并插入 KeyPressed、-Typed 和 -Released 方法;但是我从那里卡住了。我不确定如何让我的按钮真正监听 KeyPressed 事件,当它听到事件时 - 激活按钮。此外,我的按钮由它们的编号命名(例如,零按钮被命名为零,一个按钮被命名为一,等等)。
我读过你实际上必须通过使用在某处实现 KeyListener:something.addKeyListener(something); 但我似乎无法弄清楚这一点。
我可以在这里得到一些帮助吗?我是 Java 新手,这是我的第一个个人项目。如果我没有提供足够的信息,请告诉我。
编辑:我的大部分代码都是 NetBeans 生成的,我无法编辑组件的初始化,这似乎是我认为的问题?
我的班级声明:
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);
}
});
}
生成的 initComponents() netbeans 绝对是庞大的(大约 500 行代码),我无法对其进行任何编辑。如果我能提供更多有用的信息,请告诉我。