将值保存在内存中并获取它

问题描述 投票:0回答:1

我正在开发 swing 应用程序,以下步骤解释了我的问题。

  1. 我有一个对话框,我需要在其中选择学院。

  2. 一旦我选择了部门,该窗口将通过“dispose();”关闭方法。

  3. 然后会弹出一个窗口,我必须根据所选学院选择部门。

现在的问题是 Collage 类的对象已被销毁,因为弹出窗口已关闭,所以我如何在 Java 中将选定的拼贴值存储在内存中。

代码示例:

public class Test
{
    public static void main(String args[])
    {
        Sample first = new Sample();
        first.setData(1);

        Sample second = new Sample();
        System.out.println(first.getData());  // 1
        System.out.println(second.getData()); // 0
    }

}


public class Sample
{
    private int number;

    public int getNumber()
    {
        return number;
    }

    public void setNumber(int number)
    {
        this.number = number;
    }

    public void setData(int a)
    {
        setNumber(a);
    }

    public int getData()
    {
        return getNumber();
    }
}

我想要使用第二个对象的值 1,它应该像“second.getData()”应该带来值 1。是否可能,如果是,那么如何? 谢谢。

java swing
1个回答
3
投票

你也可以尝试一下,

我一直代表想法,现在你可以根据自己的需求来引领,

public class InputSelect {

    public static final String[] colleges = { "College-1", "College-2", "College-3", "College-4" };

    public static final String[][] dept = {{"college-1 Department-1","college-1 Department-2"},{"college-2 Department-1","college-2 Department-2"},{"college-3 Department-1","college-3 Department-2"},{"college-4 Department-1","college-4 Department-2"}};

      public static void main(String[] args)
      {

        JFrame frame = new JFrame("Input Dialog Example 3");
        String favoritecollege = (String) JOptionPane.showInputDialog(frame, 
            "Select Your Choice Colleges : ",
            "Choose College",
            JOptionPane.QUESTION_MESSAGE, 
            null, 
            colleges, 
            colleges[0]);

        int index = 0;

        for(String clg : colleges){
            if(favoritecollege.equals(clg)){
                break;
            }else{
                index++;
            }
        }

        String favouriteDept = (String) JOptionPane.showInputDialog(frame, 
                "Select Your Choice Department : ",
                "Choose Dept of "+ favoritecollege +" college : ",
                JOptionPane.QUESTION_MESSAGE, 
                null, 
                dept[index], 
                dept[index][0]);

        System.out.printf("Favorite College is %s.\n", favoritecollege);
        System.out.printf("Favorite Dept is %s.\n", favouriteDept);


      }

}

已编辑

public static void main(String args[])
    {
        Sample first = new Sample();
        first.setData(1);
        //Either
        //Sample second = new Sample();
        //second.setData(1);
        //or 
        Sample second = first;

        System.out.println(first.getData());  // 1
        System.out.println(second.getData()); // here, you will get 1 after above changes made.
    }

无论哪种方式,你都可以,

请确保您选择这种方式,

Sample second = first;

然后无论您在

first
second
上进行更改。 这应该反映在两个实例上,即
first
second
。 因为它不是两个不同的实例。 这只是一个例子。

但是如果你选择这种方式,

Sample second = new Sample();
second.setData(1);

那么它就不同了

first
,意味着如果您对
second
进行了任何更改,那么它不应该在 first
reflect

所以,你可以采取任何方式,你很方便。 祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.