来自另一个类的JOptionPane变量出现问题

时间:2015-11-14 18:54:54

标签: java joptionpane

我使用JOptionPane设置一些简单的代码,在单击按钮时打开一个简单的showMessageDialog。一切都很好。现在我通过从另一个类中检索一个double变量来使事情复杂化。我尝试了一些不同的东西,但我仍然得到一个“不适用于参数”的错误。我已经尝试阅读完整的Oracle文档并观看了一些YouTube视频,但我仍在苦苦挣扎。

三个类,一个用于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,“message”)参数,一切正常,但它不接受来自另一个类的双变量。我很感激任何指导。谢谢!

1 个答案:

答案 0 :(得分:1)

替换

tester.getRetrievedNumber()

String.valueOf(tester.getRetrievedNumber());

那说

public static void showMessageDialog(Component parentComponent, Object message)

由于我们可以看到showMessageDialog将对象作为第二个参数,因此AutoBoxing应该在此处工作,而double会被转换为Double对象。

Eclipse 中,使用基元作为参数可以正常工作。

也许问题在其他地方,但我找不到。也许有更多信息...