2017-03-04 89 views
0

我想从对话框中访问选定的值,只是为了测试我是否可以,我现在只是使用“System.out.print(selectedValue)”。看起来这个值总是“空”。我如何获得上述功能来打印出我在对话框中选择的任何内容?JOptionPane.showInputDialog总是返回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 
+0

片段仅适用于html/css/javascript问题。不要将它们用于Java。另外,当问一个问题时,确保你的题目是针对你的问题的;不要在标题中使用伪标签。 –

+0

@MarkRotteveel谢谢。 –

+0

看起来你想在'openWindow()'内部赋值给你的实例变量'selectedValue',但是你声明了一个新的局部变量'Object selectValue'并赋值给它。 – khelwood

回答

1

此行

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

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

如果你想分配你的实例变量,你不需要重新声明它;所以改行

selectedValue = JOptionPane.showInputDialog(...);