-1

我有一个任务,我必须在面板中绘制一个圆圈,并使用该圆圈计算当圆圈改变大小或颜色时用户的反应时间。我有paintComponent 方法。但是现在我必须在另一个类中调用圆的方法,我不知道该怎么做。有人可以帮我吗?

这是我编写paintComponent的课程:

public class ReactionPanel extends JPanel {

boolean setSmallCircle, setInitialCircle;
Color color = new Color (255,0,0); //color  = red
Color c = new Color (255,255,0); //color = yellow
int size;
int x = 250;
int y = x;

public void paintComponent(Graphics g){
  super.paintComponent(g);
  if (setInitialCircle){
    size = 50;
  }
  if (setSmallCircle) {
    size = 50;
  }
  else {
    size = 150;
  }
  g.drawOval(x,y,size,size);
  g.fillOval(x,y,size,size);
}
void setInitialCircle(Graphics g, Color color){
  g.setColor(color);
}
void setSmallCircle(Graphics g, Color c){
  g.setColor(c);
}
void setBigCircle(Graphics g, Color c){
  g.setColor(c);
}
}

现在我需要那些(setInitialCircle等)并在我的主类 ReactionExperiment 中调用它们,如下所示:

void startTest(){
//draw red circle
}

我该怎么做呢?谢谢您的帮助!

4

2 回答 2

1

我相信你想要这个?

ReactionPanel reactionPanel = new ReactionPanel();
reactionPanel.setSmallCircle(x, x); 

这段代码的作用是实例化 ReactionPanel(它创建了一个新实例)。因此,您可以在另一个类中使用它的方法。

于 2013-10-14T08:19:28.197 回答
0

我假设您有两个类,并且您想调用一个定义在另一个类中的公共函数。由于该方法不是静态方法,因此您必须为该类实例化一个对象,例如 -

ReactionPanel obj = new ReactionPanel();

然后使用这个对象,你可以调用第一个类中定义的任何方法,比如

obj.paintComponent(g);   // you'll have to define g first though
于 2013-10-14T08:24:07.403 回答