Вопрос получения и установки
У меня есть проблема, когда я устанавливаю значение для некоторых переменных из 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;