我使用 JOptionPane 设置了一些简单的代码,以便在单击按钮时打开一个简单的 showMessageDialog。一切都很好。现在,我通过从另一个类检索双变量来使事情变得复杂。我尝试了一些不同的方法,但仍然收到“不适用于参数”错误。我尝试阅读完整的 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”)参数一切正常,但它不会接受来自其他类的双变量。我将不胜感激任何指导。谢谢!
最佳答案
替换
tester.getRetrievedNumber()
与
String.valueOf(tester.getRetrievedNumber());
<小时/>
这就是说
public static void showMessageDialog(Component parentComponent, Object message)
因为我们可以看到showMessageDialog
接受一个对象作为第二个参数,AutoBoxing应该在这里工作,并且您的 double
被转换为 Double
对象。
在 Eclipse 中,使用原语作为参数可以正常工作。
也许问题出在其他地方,但我找不到它。也许有更多信息...
关于java - 来自另一个类的 JOptionPane 变量出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712090/