2016-07-26 7 views
0

私はC++からJavaに来ており、私がしようとしているのはメソッドを書くことだけです。私はなぜ私が取得しているのか分からない:メソッド 'setFrame(文字列)'は、 'BillUtility'タイプのために識別されていません 助けていただければ幸いです。Javaのメソッドは、タイプが不明である

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

"メソッド"には戻り値の型がなく、 'BillUtility'コンストラクタではありません。 –

+2

'public void setFrame(String title){...'はおそらくあなたが意図したものです。 – bradimus

+0

@bradimusはいありがとう! – Ptheguy

答えて

2

メソッドヘッダーに「static void」を追加する必要があります。静的メソッドは他の静的メソッドを呼び出します。したがって、mainは静的として宣言されているので、setFrameも同じでなければなりません。メソッドが値を返さない場合は、voidを宣言します。

1

戻り値の型を指定する必要があります。あなたの方法では、それはvoidになります。 C++にも戻り値の型があると思いますが、間違っていますか?

1

あなたがここ2つの問題を抱えて:

まず、あなたがメソッドヘッダに戻り値の型が欠落していることです。

2番目:BillUtilityクラスにアクセスできるローカルメソッドとしてmainメソッドを処理することですが、そうではありません。

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); 
    } 

} 
0

コードにはいくつか問題があります。

  1. setFrame()の返品タイプが必要です。この場合、それはあなたがそれstatic作る(私はこれは、適切な状況だとは思わないもの)か、最初のインスタンスを作成するのいずれか、setFrame()を起動したい場合は、からsetFrame()を呼び出す

    public void setFrame(String title) //set return type as void 
    
  2. になりますインスタンス:

    BillUtility bu = new BillUtility(); //create an object of BillItility 
    bu.setFrame("your title");   //invoke setFrame() from object 
    
  3. は、あなたのJFrameを実装するときに最後のステートメントとしてsetVisible(true)起動することをお勧めします。

はまた、代わりに、手動でのJFrameのサイズを設定するのでframe.pack()を起動し、(あなたのJFrameに入る)あなたのJPanelの大きさを設定することもできます。

+0

@PedZad私の答えを見てください。 – user3437460

関連する問題