Вопрос получения и установки

У меня есть проблема, когда я устанавливаю значение для некоторых переменных из jForm в класс, где я храню переменные. Установите значения, Ok, получите значения, Ok. Но когда я иду в другую jForm и вызываю получатели, она возвращает пустые значения. Я не знаю, что не так с моим кодом, и буду очень признателен, если кто-нибудь сможет мне помочь с этим.

Код довольно прямолинейный

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, где я их установил и работает просто отлично

(Editedit)

Код 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 ответ

Решение

Следующий код в 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;
Другие вопросы по тегам