2015-11-14 54 views
0

我設置了一些簡單的代碼使用JOptionPane打開一個簡單的showMessageDialog單擊按鈕時。一切正常。現在我通過從另一個類中檢索一個雙變量來使事情變得複雜。我嘗試了一些不同的東西,但我仍然得到「不適用於參數」的錯誤。我嘗試閱讀完整的Oracle文檔並觀看了幾個YouTube視頻,但我仍在掙扎。從另一個類JOptionPane變量的問題

三個類,一個用於GUI,一個用於事件處理以及從中檢索數字。

下面是代碼摘錄:

public class TEST_GUI { 

    private JButton testButton; 

    public void GUI { 
     //construction of the GUI occurs here 
     testButton = new JButton("Tester"); 
    } 



protected class EventHandler implements ActionListener { 

    public void actionPerformed(ActionEvent testButtonClicked) {   

     if (testButtonClicked.getSource() == testButton){ 
      TesterClass tester = new TesterClass(); 
      JOptionPane.showMessageDialog(null,tester.getRetrievedNumber()); 
     } 
    } 
} 



public class TesterClass { 

    private double retrievedNumber; 

    public TesterClass(){ 
     retrievedNumber = 1000.00; 
    } 

    public double getRetrievedNumber() { 
     return this.retrievedNumber; 
    } 
} 

一切正常與通用(NULL,「消息」)的參數,但它不會從其他類接受我的雙變量。我會很感激任何指導。謝謝!

回答

1

更換

tester.getRetrievedNumber() 

String.valueOf(tester.getRetrievedNumber()); 

也就是說

public static void showMessageDialog(Component parentComponent, Object message) 

因爲我們可以看到,showMessageDialog需要一個對象作爲第二個參數,AutoBoxing應該工作了e和你的double被鑄造成一個Double對象。

Eclipse,它使用基元作爲參數工作正常。

也許問題在別處但我找不到它。也許有更多的信息.​​..

+0

謝謝!所以只能將字符串傳遞給JOptionPane窗口?這是全部問題嗎?很簡單,我很驚訝,我錯過了。或者還有更多嗎? – bnr32jason

+0

我在調查。它以某種方式在Eclipse中工作。一旦我得到確切的原因,我會編輯我的答案。 –

+0

@ bnr32jason,無法找到問題,因爲它可以正常工作。將對象隱式轉換爲對象可能是類似上面的String的臨時解決方案。 –