我已经在NetBeans中编写了一个计算器,它的功能完美无缺。但是,我必须实际点击按钮才能插入数字,并试图用KeyListener进行补救。我将所有数字和功能按钮设置在JPanel命名按钮中。我在一个名为display的JPanel中有我的显示标签。在NetBeans中为计算器使用KeyListener
我将我的类设置为实现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行代码),而且我可以不编辑任何它。让我知道我是否可以提供更多有用的信息。
你可以发布你的代码吗? –
你有没有完成任何教程?这里有一个:http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html –
我张贴了一些代码。我已经关注了4个不同的教程,其中包括您列出的教程。我似乎无法弄清楚。他们正在JComponent上创建一个新的KeyListener,但我似乎无法做到这一点。 – Nick