2013-09-22 128 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

相关问题