Java访问另一个变量

时间:2015-02-15 08:33:58

标签: java

package javaapplication1;

import javax.swing.JOptionPane;

public class Room{

    public static void main(String[] args) {
        dialog();
        System.out.println(sample);
    }

    public static String dialog() {
        String sample = JOptionPane.showInputDialog(null, "Insert Value", "Enter amount ", JOptionPane.QUESTION_MESSAGE); 
        if (sample.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Error!", "No Value Detected", JOptionPane.ERROR_MESSAGE);
            dialog();
        }
        System.out.println(sample+" from the bottom line.");
        return sample;
    }

嘿伙计们,

目前我似乎正面临着从另一个object调用一个变量的问题。按照上面的代码,它是一个使用java swing提供用户输入的示例代码。我有两个对象,一个是主要的,另一个是dialog(),对话框声明了一个名为sample的变量,我想把它带到main,但是我似乎无法使用变量作为它总是出错。

非常感谢一些建议,谢谢!

4 个答案:

答案 0 :(得分:1)

在main方法中使用String sample = dialog();或全班

package javaapplication1;

import javax.swing.JOptionPane;

public class Room{

    public static void main(String[] args) {
        String sample = dialog();
        System.out.println(sample);
    }

    public static String dialog() {
        String sample = JOptionPane.showInputDialog(null, "Insert Value", "Enter amount ", JOptionPane.QUESTION_MESSAGE); 
        if (sample.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Error!", "No Value Detected", JOptionPane.ERROR_MESSAGE);
            dialog();
        }
        System.out.println(sample+" from the bottom line.");
        return sample;
    }

答案 1 :(得分:0)

如果方法返回一个值,则可以在调用方法时捕获它:

public static void main(String[] args) {
    // Assign the return value of dialog() to a variable
    String sample = dialog();
    System.out.println(sample);
}

答案 2 :(得分:0)

只需:

String sample = dialog();
System.out.println(sample);

您必须将返回值分配给变量。

答案 3 :(得分:0)

使用,

System.out.println(dialog());

您正在从方法返回一个字符串。因此,您可以使用System.out.println

直接打印该值

如果您希望稍后在程序中使用该值,则可以将其存储在变量中。

您的方法需要注意的一点是,您无法从main方法访问对话框方法的示例变量。

你正在做的另一个逻辑错误,

if (sample.isEmpty()) {
        JOptionPane.showMessageDialog(null, "Error!", "No Value Detected", JOptionPane.ERROR_MESSAGE);
        dialog();
}

如果示例变量的值为空,那么您将尝试再次调用对话框方法。但是您还没有将返回值分配给样本变量。在事件中,如果您调用对话框方法,则样本值仍为空。你可以通过

来纠正它
if (sample.isEmpty()) {
        JOptionPane.showMessageDialog(null, "Error!", "No Value Detected", JOptionPane.ERROR_MESSAGE);
        sample = dialog();
}