我来自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);
}
}
答案 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)
您的代码中存在一些问题。
您需要方法setFrame()
的返回类型。在这种情况下,它将是
public void setFrame(String title) //set return type as void
如果你想调用setFrame()
,你要么static
(我不认为这是合适的情况)或你先创建一个实例,然后调用{{ 1}}来自实例:
setFrame()
建议在实现JFrame时调用BillUtility bu = new BillUtility(); //create an object of BillItility
bu.setFrame("your title"); //invoke setFrame() from object
作为最后一条语句。
您可能还想调用setVisible(true)
并设置JPanel的维度(进入JFrame),而不是手动设置JFrame的大小。