将组件放入内容窗格 创建一个新的内容窗格取代顶层容器缺省 的内容窗格。创建一个Pane的实例,然 后将组件添加到 PAne实例中,再通过顶 层容器的 setcontentPane()方法将 PAne实 例设置为新的内容窗格(程序7) JPanel contentPane - new JPanelo contentPane. setLayout( new Border layout) contentPane. add(button, Border layout. CENTER) frame setContentPane(contentPane
将组件放入内容窗格 ▪ 创建一个新的内容窗格取代顶层容器缺省 的内容窗格。创建一个JPanel的实例,然 后将组件添加到JPanel实例中,再通过顶 层容器的setContentPane()方法将JPanel实 例设置为新的内容窗格(程序7-2) JPanel contentPane = new JPanel(); contentPane.setLayout(new BorderLayout()); contentPane.add(button, BorderLayout.CENTER); frame.setContentPane(contentPane);
注意 ■向顶层容器的内容窗格添加组件时,可以 直接调用顶层容器的ad()方法,这与调用 内容窗格的add()方法是等价的(从J2SE 1.5开始) 顶层容器缺省内容窗格的布局管理器是 Border Layout,而] Panel缺省的布局管理器 是 FlowLayout,因此可能需要为 JPanel实 例设置一个 Border layout布局管理器
注意 ▪ 向顶层容器的内容窗格添加组件时,可以 直接调用顶层容器的add()方法,这与调用 内容窗格的add()方法是等价的(从J2SE 1.5开始 ) ▪ 顶层容器缺省内容窗格的布局管理器是 BorderLayout,而JPanel缺省的布局管理器 是FlowLayout,因此可能需要为JPanel实 例设置一个BorderLayout布局管理器
面板( JPanel 面板( JPanel)是一种用途广泛的容器 与顶层容器不同的是,面板不能独立存在 必须被添加到其他容器内部 面板可以嵌套,由此可以设计出复杂的图 形用户界面
面板(JPanel) ▪ 面板(JPanel)是一种用途广泛的容器 ▪ 与顶层容器不同的是,面板不能独立存在, 必须被添加到其他容器内部 ▪ 面板可以嵌套,由此可以设计出复杂的图 形用户界面
程序7-3 创建一个黄色面板,通过add()方法在面板 &Frame with Panel x到 import iava. aw import javax. s 们背 public class publi Press me frame. setSize(300, 200) frame setVisible(true)
程序7-3 ▪ 创建一个黄色面板,通过add()方法在面板 中添加了一个按钮,然后将该面板添加到 一个JFrame的实例中,JFrame实例的背 景被设置为蓝绿色 import java.awt.*; import javax.swing.*; public class FrameWithPanel { public static void main(String args[]) { JFrame frame = new JFrame("Frame with Panel"); Container contentPane = frame.getContentPane(); contentPane.setBackground(Color.CYAN); JPanel panel = new JPanel(); panel.setBackground(Color.yellow); JButton button = new JButton("Press me"); panel.add(button); contentPane.add(panel, BorderLayout.SOUTH); frame.setSize(300,200); frame.setVisible(true); } }
布局 ■组件的布局,包括位置和大小,通常由布局管理 器( Layout Manager)负责安排 每个容器都有一个缺省的布局管理器 ■通过容器的 setLayout0方法改变容器的布局管理器 多种布局管理器 java. awt. FlowLayout, java. awt. Borderlayout java. awt. Gridlayout, java. awt. GridBagLayout ava. awt. CardLayout, javax. swing. Boxlayout /A javax. swing. Springlayout
布局 ▪ 组件的布局,包括位置和大小,通常由布局管理 器(Layout Manager)负责安排 ▪ 每个容器都有一个缺省的布局管理器 ▪ 通过容器的setLayout()方法改变容器的布局管理器 ▪ 多种布局管理器 ▪ java.awt.FlowLayout、java.awt.BorderLayout、 java.awt.GridLayout、java.awt.GridBagLayout、 java.awt.CardLayout、javax.swing.BoxLayout和 javax.swing.SpringLayout