我正在尝试在另一个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?");
}
}
答案 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?");
}
}