在没有main方法的类中调用方法

时间:2013-12-05 18:39:33

标签: java

我有一个类,但它没有主,我无法执行它。我应该用main来创建另一个类来执行我的小项目,还是应该在这里添加main。如何在主类中调用此方法?

这是我的班级。

import java.awt.*;


public class Cycle
{

  public void paintComponent(Graphics g)
  {
     int gjeresia_e_kornizes = 300;
     int gjatesia_e_kornizes = 200;
     g.setColor(Color.red);
     g.fillRect(0,0,gjeresia_e_kornizes, gjatesia_e_kornizes);
     g.setColor(Color.red);
     int skaji_majtas = 105;
     int lart =70;
     int gjeresia = 90;
     int lartesia = 60;
     g.drawRect(skaji_majtas, lart, gjeresia, lartesia);
     int diametri = 40;
     g.fillOval(skaji_majtas+gjeresia-diametri,lart, diametri, diametri);

  }
}

5 个答案:

答案 0 :(得分:2)

在这里查看basic tutorial for Swing。您现在改变您的类以扩展JPanel。

public class Cycle extends JPanel
{

  @Override   // just to make sure we really override this
  public void paintComponent(Graphics g)
  {
     int gjeresia_e_kornizes = 300;
     int gjatesia_e_kornizes = 200;
     g.setColor(Color.red);
     g.fillRect(0,0,gjeresia_e_kornizes, gjatesia_e_kornizes);
     g.setColor(Color.red);
     int skaji_majtas = 105;
     int lart =70;
     int gjeresia = 90;
     int lartesia = 60;
     g.drawRect(skaji_majtas, lart, gjeresia, lartesia);
     int diametri = 40;
     g.fillOval(skaji_majtas+gjeresia-diametri,lart, diametri, diametri);

  }
}

在本教程的代码中,您可以添加Cycle,而不是添加所有组件。完成。我想你需要设置Cycle的大小。 (注意:我没有测试过这个)

答案 1 :(得分:0)

无论哪种方式都可以。您可以向此类添加main方法或编写驱动程序类。如果你有更大的代码库,那么拥有一个驱动程序类是有帮助的。

答案 2 :(得分:0)

您可以在此课程或其他课程中添加main方法。为了执行它,您需要创建一个Cycle实例并调用此方法。

import java.awt.*;


public class Cycle
{

 public void paintComponent(Graphics g)
 {
 int gjeresia_e_kornizes = 300;
 int gjatesia_e_kornizes = 200;
 g.setColor(Color.red);
 g.fillRect(0,0,gjeresia_e_kornizes, gjatesia_e_kornizes);
 g.setColor(Color.red);
 int skaji_majtas = 105;
 int lart =70;
 int gjeresia = 90;
 int lartesia = 60;
 g.drawRect(skaji_majtas, lart, gjeresia, lartesia);
 int diametri = 40;
 g.fillOval(skaji_majtas+gjeresia-diametri,lart, diametri, diametri);
 }

public static void main (

//instanciate a new Cycle object
Cycle cycle = new Cycle();
cycle.paintComponent(g);// g is the Graphics reference
}

}

还有一件事是如果你必须扩展Jpanel,你也可以使用@override这个方法来覆盖。简单地说,Graphics g实际上是Super类的属性。方法调用发生在类层次结构中的更高级别

答案 3 :(得分:0)

无论哪种方式都没问题。如果你有一个足够大的项目,除了有一个main()方法之外,还要创建一个单独的驱动程序类来为你进行配置和设置。另一方面,对于小项目,通常最好将main方法放入其中一个类文件中。

答案 4 :(得分:0)

要么应该工作。哪个更好可能取决于您的项目有多大以及您正在使用它做什么。你的项目只是一个类吗?如果是这样,我会将main方法添加到该类,创建一个Cycle对象,并在其上调用paintComponent()。如果它是更大系统的一部分,那么为启动应用程序的系统创建一个特定的主类会更好,这将在何时以及如何需要时调用Cycle。