在JOptionPane创建的其他方法中访问字符串?

时间:2014-02-22 01:34:12

标签: java string variables methods joptionpane

我正在尝试在另一个JOptionPane中使用JOptionPane创建的字符串。我试着让字符串全局化。我这样做了吗?

import javax.swing.JOptionPane;


public class Dialogue
{
    public static String reason = "";
    public static void main(String[] args)
{
    ask();
    JOptionPane.showInputDialog("You're here because: " + reason);
}

public static void ask()
{
    String reason = JOptionPane.showInputDialog("Why are you here?");
}
} 

3 个答案:

答案 0 :(得分:1)

在此声明中:

String reason = JOptionPane.showInputDialog("Why are you here?");

您正在创建新的String。所以全局变量和这个变量并没有引用相同的String

这样做:

reason = JOptionPane.showInputDialog("Why are you here?");

这样您可以根据需要使用全局变量。



编辑: 我猜你在问他为什么在那里之后你不想要用户输入,所以我想你想改变它:

JOptionPane.showInputDialog("You're here because: " + reason);

到这个

JOptionPane.showMessageDialog(null, "You're here because: " + reason);

这样,它只是提供信息,而不是等待用户输入。

答案 1 :(得分:1)

String方法移除ask(通过这样做,您正在创建新的本地变量reason

保持为

reason = JOptionPane.showInputDialog("Why are you here?");

答案 2 :(得分:1)

字符串reason被声明为全局变量和静态变量,所以不需要重新传递ask ()方法

public class Dialogue
{
    public static String reason = "";
    public static void main(String[] args)
{
    ask();
    JOptionPane.showInputDialog("You're here because: " + reason);
}

public static void ask()
{
     reason = JOptionPane.showInputDialog("Why are you here?");
}
} 

enter image description here enter image description here