吸气剂和塞特剂问题

时间:2018-08-06 01:26:57

标签: java getter-setter jform

我遇到了这个问题,我在其中将某些变量的值从jForm设置为存储变量的类。设置值,确定,获取值,确定。 但是,当我转到其他jForm并调用getter时,它将返回空值。 我不知道我的代码有什么问题,如果有人可以帮助我解决这个问题,我将不胜感激。

代码相当简单

public class Variables
{
    private int Var1;
    private int Var2;
    private double Var3;
    private int Var4;

    public int getVar1() {
        return capacidad;
    }

    public void setVar1(int Var1) {
        this.Var1 = Var1;
    }

    public int getVar2() {
        return Var2;
    }

    public void setVar2(int Var2) {
        this.Var2 = Var2;
    }

    public double getVar3() {
        return Var3;
    }

    public void setVar3(double Var3) {
        this.Var3 = Var3;
    }

    public int getVar4() {
        return Var4;
    }

    public void setVar4(int Var4) {
        this.Var4 = Var4;
    }
}

例如,我设置所有从jForm调用函数的值,如下所示:

variables.setVar1(value1);
variables.setVar2(value2);
variables.setVar3(value3);
variables.setVar4(value4);

然后我尝试从另一个jForm中获取值,它们全为0

(编辑)

我已经尝试从设置它们并且可以正常工作的同一jForm调用它们

(编辑)

jForm1代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int value1;
        int value2;
        double value3;
        int value4;
        try
        {
            value1 = (int) 1Spinner.getValue();
            value2 = (int) 2Spinner.getValue();
            value3 = (int) 3Spinner.getValue();
            value4 = (int) 4Spinner.getValue();
            if(value1>0)
            {
                variables.setVar1(value1);
                variables.setVar2(value2;
                variables.setVar3(value3);
                variables.setVar4(value4);
            }
            else
            {

            }
        }
        catch(Exception e)
        {
            System.out.orintln("Error");
        }

    }          

jForm2代码:

int value1;
int value2;
int value3;
int value4;

Variables variables = new Variables();
value1 = variables.getVar1();
//and so on, all of them return empty

1 个答案:

答案 0 :(得分:0)

jForm2中的以下代码创建了variables变量的新实例。因此,任何实例成员都将被初始化。

Variables variables = new Variables();

如果希望它与jForm1具有相同的值,则需要为jForm2提供从jForm1获取它们的方法,如下所示:

// in jForm1
private static Variables variables = new Variables();
public static getVariables() {
    return variables;
}

// in jForm2
Variables variables = jForm1.getVariables();

或者您可以像这样声明您的Variables实例成员为静态成员:

public class Variables {
    private static int Var1;
    private static int Var2;
    private static double Var3;
    private static int Var4;