二级java程序设计--图形用户界面(2)

xiaoxiao2021-02-27  180

图形用户界面(2)

五.用Swing编写图形用户界面

1.Swing概述:纯java实现的轻量级组件 Swing采用了MVC的设计范式,即“模型-视图-控制器”,其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。 2.Swing类层次结构 java.awt.Component -java.awt.Container ---java.awt.Window -----java.awt.Frame--javax.swing,JFrame -----javax.Dialog--javax.swing.JDialog -----javax.swing.JWindow  ---java.awt.Applet--javax.swing.JApplet ---javax.swing.Box ---javax.swing.JComponent 3.Swing组件的多样化:Swing是AWT的扩展,它提供了许多新的界面组件。Swing组件以"J"开头,除了有AWT类似的按钮(JButton),标签(JLabel)等还有丰富的高层组件集合,如表格(JTable),树(JTree)。 Swing的程序设计一般可按照下列流程进行: (1)引入Swing包; (2)选择“外观和感觉”; (3)设置顶层容器; (4)设置按钮和标签; (5)向容器中添加组件; (6)在组件周围添加边界;

(7)进行事件处理。

六.Swing组件和容器 1.组件的分类 JComponent是一个抽象类,是大多数Swing组件的父类,定义了所有子类组件的一般方法。JComponent类继承于Container类。其类层次结构如图: java.lang.Object --java.awt.Component ----java.awt.Container ------javax.swing.JComponent 组件从功能上可分为: (1)顶层容器:JFrame,JApplet,JDialog,JWindow共4个。 (2)中间容器:JPanel,JToolBar,JScrollPane... (3)特殊容器:JRootPane... (4)基本控件:实现人际交互的组件,如:JButton,JComboBox,JList,JMenu... (5)不可编辑信息的显示:向用户显示不可编辑信息的组件,例如:JLabel,JToolTip。 (6)可编辑信息的显示:向用户显示能被编辑的格式化的组件,如:JTable,JTextArea... 2.使用Swing的基本规则 与AWT组件不同,Swing组件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(Content Pane)上。内容面板是顶层容器包含的一个普通容器,它是一个轻量级组件。 基本规则如下: (1)把Swing组件放入一个顶层Swing容器的内容面板上。 (2)避免使用非Swing的重量级组件。 对JFrame天假组件有两种方式: (1)用getContentPane()方法获得JFrame的内容面板,再向其加入组件:frame.getContentPane().add(childComponent)。 (2)建立一个JPanel或JDesktopPane之类的中间容器,把组件添加到容器中,再用setContentPane()方法把该容器置为JFrame的内容面板。 Jpanel contentPane = new Jpanel(); //... //把其他组件添加到Jpanel中 frame.setContentPane(contentPane); //把contentPane对象设置成为frame的内容面板 3.各种容器面板和组件 (1)根面板:由一个玻璃面板(GlassPane)(完全透明,默认值为不可见),一个内容面板(ContentPane)和一个可以选择的菜单条(JMenuBar)组成。 (2)分层面板:Swing提供两种分层面板:JLayeredPanel和JDesktopPane。 (3)面板:轻量级容器组件。JPanel的默认布局管理器是FlowLayout。层次结构图如下: java.lang.Object --java.awt.Component ----java.awt.Container ------javax.swing.JComponent --------javax.swing.JPanel/JSplitPane (4)滚动窗口(JSeraliPane) (5)分隔板(JSplitPane):分隔板用于分隔两个组件。 (6)选项板(JTabbedPane):提供了一组可供用户选择的带标签或图标的选项。 (7)按钮(JButton) (8)复选框(JCheckBox) ...
转载请注明原文地址: https://www.6miu.com/read-15833.html

最新回复(0)