我正在學習使用Java Swing類的事件處理。 我嘗試了基於新波士頓主頁的教程的不同組合。我已經做了一個定義面板,JButtons,JTextfields和Jlabels的類。我創建了一個名爲「處理程序」的類,其中包含ActionPerfomed方法,並且我已將兩個文本字段(item1和item2)連接到addActionlistener方法。 當我運行我的程序,我得到的程序做我想用兩個文本框(這是什麼促使一個JOptionPane.showMessageDialog框中顯示我想要的文字。在Java中學習事件處理
問題是當我想要的JOptionPane.showMessageDialog窗口當我按下其中一個按鈕時顯示某個文本: - 代替顯示下面的文本「您按下了按鈕編號1!」,因爲我希望我的代碼可以執行,而不是顯示一個空的JOptionPane.showMessageDialog-窗口。
我記得經驗豐富的Java程序員會很容易地看到我的代碼有什麼問題
這裏是par代碼必須是錯誤的T:
private class thehandler implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String text ="";
if(event.getSource() == item1)
text = String.format("You wrote %s in field 1!", event.getActionCommand());
else if (event.getSource() == item2)
text = String.format("You wrote %s in field 2!", event.getActionCommand());
else if (event.getSource() == button1)
text = "You pushed button number 1!";
else if (event.getSource() == button2)
text = "You pushed button number 2!";
JOptionPane.showMessageDialog(null, text);
彈出的對話框顯示觸發了「ActionListener」。由於它顯示的是空字符串,事件的來源很可能不是您所期望的。 – Robin 2014-10-10 19:22:06
考慮發佈[MCVE](http://stackoverflow.com/help/mcve)。你確定item1,item2,button1和button2被正確初始化了嗎? – 2014-10-10 20:37:49