《化羽Java GUI学习笔记》 我自己的学习笔记以后方便复习,也希望可以给找不到方法学习的人一点点帮助。如果有错误请大家告诉一下相互学习。
内容窗格 (ContentPane)
每个顶层容器(JFrame,JApplet,JDialog及JWindow)都有一个内容窗格(ContentPane),事实上顶层容器中除菜单之外的组件都放在这个内容窗格。
想要将组件放入到内容窗格,可以使用两种方法:
方法一;是通过顶层容器的getContentPane()方法获得其默认的内容窗格(注意:getContentPane()方法的返回类型为java.awt.Container,仍为一容器),然后将组件添加到内容窗格中,
例如:
Container contentPane = frame.getContentPane();
contentPane.add(button,BorderLayout.CENTER);
也可以合并一句表示
frame.getContentPane().add(button,BorderLayout.CENTER);
方法二:创建一个新的内容窗格取代顶层容器默认的内容窗格。通常的方法是创建一个JPanel的实例,然后将组件添加到JPanel实例中,再通过顶层容器的
setContentPane()方法将JPanel实例设置为新的内容窗格
例如:
JPanel contentPane = new JPanel();
contentPane.setLayout(new BorderLayout());
contentPane.add(button,BorderLayout.CENTER);
frame.setContentPane(contentPane);
注意:顶层容器默认内容窗格的布局管理器时BorderLayout,而JPanel默认的布局管理器时FlowLayout,因此可能需要为JPanel实例设置一个BorderLayout布局管理器
import java.awt.*;
import javax.swing.*;
public class JFrameDemo2 {
public static void main(String[] args) {
JFrame frame = new JFrame("JFrameDemo2");
JButton button = new JButton("Press me");
//方法一
JPanel contentPane = new JPanel(); //创建一个JPanel(板面)的实列
//为JPanel设置BorderLayout布局管理器
contentPane.setLayout(new BorderLayout());
//将JButton放到JPanel的中央
contentPane.add(button,BorderLayout.CENTER);
//为JFrame设置新的内容窗格
frame.setContentPane(contentPane);
// //方法二
// Container contentPane = frame.getContentPane();
// contentPane.add(button,BorderLayout.CENTER);
//
// //也可以合并一句表示
// //frame.getContentPane().add(button,BorderLayout.CENTER);
frame.pack(); //将JFrame设置到适当的大小
frame.setVisible(true);
}
}