JOptionPane.showInputDialog始终返回null

时间:2017-03-04 16:55:08

标签: java swing joptionpane

我想从对话框中访问所选的值,并且只是为了测试我是否可以,我现在只是使用" System.out.print(selectedValue)"。似乎这个值总是" null"。如何让上述功能打印出我在对话框中选择的内容?

代码:(注意我也在学习多个文件项目,这就是为什么它看起来有些奇怪"包"和东西)

package classfolder;

import java.applet.*;
import java.awt.*;
import javax.swing.*;

public class openWindow
{   

    public Object selectedValue;

    public openWindow()
    {       
        Object[] Categories = { "First", "Second", "Third" };
        Object selectedValue = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.INFORMATION_MESSAGE, null, Categories, Categories[0]);
    }

}

import classfolder.*;

public class master
{

    public static void main(String[] arg)
    {
        openWindow window = new openWindow();
        System.out.println(window.selectedValue);

    }
}

我从控制台获得了什么:

...address...>java master
null

1 个答案:

答案 0 :(得分:1)

这一行

Object selectedValue = JOptionPane.showInputDialog(...);

声明一个名为selectedValue的新局部变量,并将其设置为showInputDialog的结果。这不会影响您的实例变量selectedValue - 它是一个不同的变量。

如果要分配实例变量,则无需重新声明;所以将行改为

selectedValue = JOptionPane.showInputDialog(...);