-3

我的计数器类中有一个公共整数变量(MainReg)。我想获取此变量的值并将其设置在我的 JComponent 类中。这是我的 JComponent 类的一部分:

public class Komponent2 extends JComponent implements ActionListener
{
Counter counter3;
.
.
.
int a = counter3.valueOf(MainReg);

但它不起作用。我也试过:

int a = valueOf(counter3.MainReg);
int a = counter3.valueOf(counter3.MainReg);
int a = counter3.MainReg;

但它仍然不起作用。我怎样才能得到这个变量?谢谢你帮助我。

编辑

这是我的计数器类:

 import java.util.Observable ;
public class Counter extends Observable
{
    public int MainReg;
    public int CompareReg;
    public Mode countMode;
    public boolean OVF;
    private int a=0;

public Counter()
  {
    OVF=false;
  }
public void setCompareReg(int dana)
  {
    CompareReg=dana;
  }
public void setMainReg(int dana2)
  {
    MainReg=dana2;
  }
public void setMode(Mode countMode)
  {
    this.countMode=countMode;
  }
public void Count()
  {
   if (countMode==Mode.UP)
   {
    MainReg++;
    OVF=false;
    if (CompareReg < MainReg)
    {
     OVF=true;
     MainReg=0;
     setChanged();
     notifyObservers();
    }
   }
   else if (countMode==Mode.UPDOWN)
   {     
    if(MainReg >= CompareReg)
    {
     a=MainReg;     
     MainReg--;
     OVF=true;
    }
    else
    {
     if(MainReg >= a)
     {
      MainReg++;
      OVF=false;
     }
     else
     {
      MainReg--;
      if(MainReg==0)
      {
       a=0;
      }
      OVF=false;
     }
    }
   }
   else if (countMode==Mode.CONTINOUS)
   {
    MainReg++;
    OVF=false;
    if (65536 < MainReg)
    {
     MainReg=0;
     OVF=true;
    }
   }
  }
 }
4

2 回答 2

1

好吧,我看到了两种方法可以做到这一点。

  1. 您的 MainReg 整数是公开的,您可以简单地使用 int i = counter3.MainReg;
  2. 或者,您可以在 Counter 类中创建一个 getMainReg() 方法。然后从任何班级调用它。

    前任:

    public int getMainReg() { return this.MainReg; }

于 2013-05-15T22:37:48.010 回答
0

提供您的 Counter 类 getter 方法,然后在需要访问它们的值时调用它们。IE,

public int getMainReg() {
   return mainReg;
}
public int getCompareReg(){
   return compareReg;
}
public Mode getCountMode() {
   return countMode;
}

并使您的字段全部私有。此外,您的代码应遵守 Java 命名规则:变量名应以小写字母开头。

还要确保您已经在使用它的类中初始化了计数器变量,方法是创建一个新实例,或者如果合适,在构造函数或方法参数中传入一个有效实例。

于 2013-05-15T22:34:19.060 回答