2017-04-01 75 views
0

我是Java新手,我一直在嘗試設置一個框架,但是我的代碼無法工作,或者是因爲代碼錯誤,或者是因爲我的軟件有問題。我正在使用Eclipse。在Java中設置一個框架

所以這是我的代碼:

package Frame; 

import javax.swing.JFrame; 


public class App { 


class FrameApp extends JFrame { 

    public static void main(String[] args) { 

     JFrame frame = new JFrame("FirstFrame"); 
     frame.setTitle("MFF"); 
     frame.setSize(300, 700); 
     frame.setVisible(true); 

    } 
    } 

} 

返回

的方法主要不能被聲明爲靜態的;靜態方法只能是 在靜態或頂級類型中聲明

+1

[Java:何時使用靜態方法]可能重複(http://stackoverflow.com/questions/2671496/java-when-to-use-static-methods) –

+0

嘗試移動'main'函數直接到App類。 –

+0

擺脫這一行:「類FrameApp擴展JFrame {」和底部的一個右括號。在這個例子中你不需要FrameApp類。你的框架對象是JFrame。 –

回答

1

問題是您正在內部類中聲明main方法。這就是拋出的異常意味着什麼。 這將爲你工作。

package Frame; 

import javax.swing.JFrame; 

class FrameApp extends JFrame{ 
public FrameApp(String name){ 
super(name); 
} 
} 


public class App { 


public static void main(String[] args) { 

    FrameApp frame = new FrameApp("FirstFrame"); 
    frame.setTitle("MFF"); 
    frame.setSize(300, 700); 
    frame.setVisible(true); 

} 

} 

Enjoy! :)

0

你可以這樣做,這不是擴展JFrame。

import javax.swing.JFrame; 

public class App{ 
    public App() { 
     JFrame frame = new JFrame("FirstFrame"); // This sets the title 
     frame.setTitle("MFF"); // Then you're resetting the title 
     frame.setSize(300, 700); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
    public static void main(String[] args) { 
     new App(); 
    } 

} 

或者你可以擴展它

import javax.swing.JFrame; 

public class App extends JFrame{ 
    public App() { 
     // When you extend JFrame you're essentially creating a JFrame 
     // This gets into OOP (which you of course need to learn) 
     // Since you've extended the JFrame you can directly access its methods 
     // like setTitle, setSize.... 
     setTitle("MFF"); 
     setSize(300, 700); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
    public static void main(String[] args) { 
     new App(); 
    } 

} 

我絕對不是很有經驗的搖擺,但選擇一種方法 比其他時候。我選擇不擴展框架。爲了回答你的 問題,當創建這個簡單的JFrame時,沒有理由在應用類 中放置另一個類,這就是爲什麼我改變爲上面的 的原因。