[英]Adding Layout Manager to JPanel and JFrame
我正在尝试向框架添加按钮,这有两种方法。
更改JPanel
的布局,然后将按钮直接添加到面板。 (下面的代码中的注释部分)。 然后,我将面板添加到框架中。 这种方法有效,并且在JFrame
显示按钮。
创建一个BorderLayout
,使用addLayoutComponents()
方法添加按钮。 然后将此bl
( BorderLayout
参考)添加到面板中,然后添加JFrame。 为什么这种方法没有在框架中显示按钮? 我哪里做错了?
谁能帮助我学习AWT组件? 我的意思是首先阅读什么和概念序列。
jf = new JFrame();
jp= new JPanel(new BorderLayout());
/*jp.add(new JButton("North"), BorderLayout.NORTH);
jp.add(new JButton("South"), BorderLayout.SOUTH);
jp.add(new JButton("East"), BorderLayout.EAST);
jp.add(new JButton("West"), BorderLayout.WEST);
jp.add(new JButton("Center"), BorderLayout.CENTER);
jf.add(jp);
*/
BorderLayout bl = new BorderLayout();
bl.addLayoutComponent(new JButton("North"), BorderLayout.NORTH);
bl.addLayoutComponent(new JButton("South"), BorderLayout.SOUTH);
bl.addLayoutComponent(new JButton("East"), BorderLayout.EAST);
bl.addLayoutComponent(new JButton("West"), BorderLayout.WEST);
bl.addLayoutComponent(new JButton("Center"), BorderLayout.CENTER);
jp.setLayout(bl);
jf.add(jp);
第二种方法不起作用,因为它是错误的。 您不应该将组件直接添加到布局管理器中,而应该添加到使用布局管理器的容器中,如此处的布局管理器教程中概述的那样: 布局管理器教程 。 根据BorderLayout API,编码人员不应直接调用addLayoutComponent
方法,而应在将组件添加到容器时由容器本身间接调用。 该方法将组件添加到布局中, 但不添加到容器本身 ,这是一个关键的区别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.