2013-09-22 125 views
0
public class Benim extends JFrame { 
    Container contentArea = getContentPane(); 

public Benim(){ 
    JFrame frame=new JFrame("Concentration"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    setSize(800, 800); 

    JButton start=new JButton("Start"); 
    JPanel pane=new JPanel(); 
    pane.add(start); 

    setVisible(true); 
    frame.add(start); 
    frame.add(pane); 
    /* setContentPane(Container) 


    JRootPane createRootPane()*/ 


} 

public static void main (String []args){ 

      new Benim(); 

} 
} 

我的代碼就是這樣。我嘗試添加面板,然後添加面板到框架,直接添加到框架。添加一個rootpane,但仍然沒有出現我的按鈕。我想學習2天,但我仍然在同一點。爲什麼不jframe顯示按鈕?

回答

0

JFrame的,爲什麼另一個實例?您正在擴展它,所以請致電super()

public class Benim extends JFrame { 
    Container contentArea = getContentPane(); 

    public Benim(){ 
    super("Concentration"); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    pack(); 
    setSize(800, 800); 

    JButton start=new JButton("Start"); 
    JPanel pane=new JPanel(); 
    pane.add(start); 
    add(pane); 

    setVisible(true); 
    } 

    public static void main (String []args){ 
    new Benim(); 
    } 
} 

Reimeus也正確地指出,如果您不打算擴展功能,則不需要擴展JFrame。查看他的示例以獲取其他實現。

+1

感謝這taugth我很多東西。我會做一個像這樣的遊戲http://www.mathsisfun.com/games/memory/ 我將使用面板卡,我會添加按鈕開始停止等框架直接。它工作嗎? –

+0

確定它會工作。但我猜你仍然需要爲此多學習一些,保持它!聽起來很不錯。 – Blacklight

2

顯示的JFrame的實例沒有添加JButton

而不是在JFrame調用setVisible直接

你幾乎從來沒有要擴展JFrame,因爲沒有增加新的功能

其他注意事項

  • 呼叫setVisible部件已被添加
  • setSize是不必要的 - 讓pack確定容器大小

這是結果

public class Benim extends JFrame { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       JFrame frame = new JFrame("Concentration"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

       JButton start = new JButton("Start"); 
       JPanel pane = new JPanel(); 
       pane.add(start); 


       pane.add(start); 
       frame.add(pane); 
       frame.pack(); 
       frame.setVisible(true);    
      } 
     }); 
    } 
} 
+0

+1表示擴展'JFrame'的點。 – asgs

相關問題