Java方法未识别类型

时间:2016-07-26 21:18:34

标签: java swing

我来自C ++到Java,我想要做的就是编写一个方法。我不明白为什么我得到:方法'setFrame(String)'未识别'BillUtility'类型 任何帮助表示赞赏。

import javax.swing.*;

public class BillUtility 
{

public static void main(String argc[])
{
    setFrame("Bill Utility");
}

public setFrame(String title)
{
    JFrame frame = new JFrame();
    frame.setVisible(true);
    frame.setTitle(title);
    frame.setSize(800, 1000);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

4 个答案:

答案 0 :(得分:2)

你需要添加" static void"到您的方法标题。静态方法调用其他静态方法,因此main声明为static,setFrame也必须如此。当方法不返回值时,您声明为void。

答案 1 :(得分:1)

您需要指定返回类型。在您的方法中,它将是void。 我认为C ++中也有返回类型,我错了吗?

答案 2 :(得分:1)

这里有2个问题:

首先,您在方法标题中缺少返回类型。

第二:你是否将main方法作为可以访问BillUtility类的本地方法处理,但事实并非如此。

您需要从BillUtility类创建一个对象,并使用它调用setFrame方法或将setFrame方法标头设置为静态。

import javax.swing.*;

public class BillUtility
{

    public static void main(String argc[])
    {
        BillUtility util = new BillUtility();
        util.setFrame("Bill Utility");
    }

    public void  setFrame(String title)
    {
        JFrame frame = new JFrame();
        frame.setVisible(true);
        frame.setTitle(title);
        frame.setSize(800, 1000);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}

答案 3 :(得分:0)

您的代码中存在一些问题。

  1. 您需要方法setFrame()的返回类型。在这种情况下,它将是

    public void setFrame(String title)    //set return type as void
    
  2. 如果你想调用setFrame(),你要么static(我不认为这是合适的情况)或你先创建一个实例,然后调用{{ 1}}来自实例:

    setFrame()
  3. 建议在实现JFrame时调用BillUtility bu = new BillUtility(); //create an object of BillItility bu.setFrame("your title"); //invoke setFrame() from object 作为最后一条语句。

  4. 您可能还想调用setVisible(true)并设置JPanel的维度(进入JFrame),而不是手动设置JFrame的大小。