需要关于方法调用的语法建议

时间:2015-07-06 19:14:45

标签: methods constructor jlabel calling-convention

我需要一些帮助来获得调用方法的语法正确。名为“Die”的类有一个名为getImage()的方法。它的工作是构造一个JLabel,并且这样做它应该在名为“PairOfDice”的类中调用getDie1Image()。

getDie1Image()的工作是选择六个模具面部图像中的一个并在调用时返回它。目前,我收到一条错误消息:“方法getDie1Image()未定义为Die类型。”

是的,这是学校的工作,所以我只应该就这一点寻求帮助。感谢。

以下是Die.java的细分

public static void getImage()
   {
       JLabel face1, face2;

       face1 = new JLabel(" ", getDie1Image(), SwingConstants.CENTER);
       face2 = new JLabel(" ", getDie2Image(), SwingConstants.CENTER);

   }

以下是PairOfDice.java

的细分
public ImageIcon getDie1Image()
{
    int cube = die1.roll(); // returns int value 1-6
    ImageIcon face = null;  
    switch(cube)
    {
    case 1:
        ImageIcon face1 = new ImageIcon("Die_Face_1.png");
        face = face1;
        break;
    case 2:
        ImageIcon face2 = new ImageIcon("Die_Face_2.png");
        face = face2;
        break;
    case 3:
        ImageIcon face3 = new ImageIcon("Die_Face_3.png");
        face = face3;
        break;
    case 4:
        ImageIcon face4 = new ImageIcon("Die_Face_4.png");
        face = face4;
        break;
    case 5:
        ImageIcon face5 = new ImageIcon("Die_Face_5.png");
        face = face5;
        break;
    case 6:
        ImageIcon face6 = new ImageIcon("Die_Face_6.png");
        face = face6;
        default:
    }

    return face;

}

1 个答案:

答案 0 :(得分:0)

根据您的描述,您的SaveChanges方法似乎是`PairOfDice'的公共成员函数。类。这意味着您需要在类中创建PairOfDice对象。您的新代码应如下所示:

getDie1Image()

请记住,在Java中,您只能通过创建该类的实例并访问其成员来调用其他类的公共成员函数,如下所示:

public static void getImage()
   {
       PairOfDice pod = new PairOfDice();
       JLabel face1 = new JLabel(" ", pod.getDie1Image(), SwingConstants.CENTER);
       JLabel face2 = new JLabel(" ", pod.getDie2Image(), SwingConstants.CENTER);
   }

如果公共方法也是静态的,那么您不需要创建类的实例,因为静态方法属于类本身,而不是类的实例。那么您的代码将是:

SomeClass sc = new SomeClass();
sc.my_pub_member_fxn();