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天,但我仍然在同一时间。
答案 0 :(得分:2)
显示的JFrame
实例未添加JButton
。
直接在setVisible
上直接调用JFrame
您几乎不想扩展JFrame
,因为没有添加任何新功能
其他注意事项
setVisible
setSize
是不必要的 - 让pack
确定容器大小</ li>
这是结果
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);
}
});
}
}
答案 1 :(得分: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。请参阅他的示例以了解替代实现。