我已經在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