Java程序设计课件Java程序设计 (9).pdf
《Java程序设计课件Java程序设计 (9).pdf》由会员分享,可在线阅读,更多相关《Java程序设计课件Java程序设计 (9).pdf(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java语言程序设计(第2版)第7章 图形用户界面(二)BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE容器层次结构是一个以顶层容器为根的树状组件集合为了显示在屏幕上,每个组件必须是一套容器层次结构的一部分每个组件只能放置在某个容器内一次如果某个组件已经在一个容器中,又将它加到另外一个容器中,这个组件就会从第一个容器中清除2BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
2、BBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学Swing的3个顶层容器类 JFrame、JApplet、JDialog。都是重量级组件,分别继承了AWT组件Frame、Applet和Dialog。每个顶层容器都有一个内容面板,通常直接或间接的容纳别的可视组件。可以有选择地为顶层容器添加菜单,菜单被放置在顶层容器上,但是在内容面板之外。3BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
3、BBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学JFrame的继承结构java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Frame javax.swing.JFrame4BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
4、EEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学JApplet的继承结构java.lang.Object java.awt.Component java.awt.Container java.awt.Panel java.awt.Applet javax.swing.JApplet5BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第
5、2版),郑莉,清华大学JDialog的继承结构java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Dialog javax.swing.JDialog6BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学 JApplet类的顶层容器由浏览器提供,通常不需要自
6、己产生JApplet类的对象。JFrame和JDialog对象需要创建并通过构造方法初始化。如何获得一个顶层容器7BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学构造方法名称名称描述描述JFrame()JFrame()建立一个新的建立一个新的JFrameJFrame,默认是不可见的,默认是不可见的JFrame(String titleJFrame(String
7、 title)建立一个具有标题的建立一个具有标题的JFrameJFrame,默认是不可见的,默认是不可见的JApplet()JApplet()建立一个建立一个JAppletJAppletJDialog()JDialog()建立一个建立一个nonnon-moalmoal对话框,无标题对话框,无标题JDialog(Dialog owner)JDialog(Dialog owner)建立一个属于建立一个属于DialogDialog组件的对话框,为组件的对话框,为nonnon-modalmodal形式,无标题形式,无标题JDialog(Dialog owner,boolean modal)JDialo
8、g(Dialog owner,boolean modal)建立一个属于建立一个属于DialogDialog组件的对话框,可决定组件的对话框,可决定modalmodal形式,无标题形式,无标题JDialog(Dialog owner,String title)JDialog(Dialog owner,String title)建立一个属于建立一个属于DialogDialog组件的对话框,为组件的对话框,为nonnon-modalmodal形式,有标题形式,有标题8BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEE
9、EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE9JDialog(Dialog owner,String title,JDialog(Dialog owner,String title,boolean modal)boolean modal)建立一个属于建立一个属于DialogDialog组件的对话框,可决定组件的对话框,可决定modalmodal形式,有标题形式,有标题JDialog(Frame owner)JDialog(Frame owner)建立一个属于建立一个属于FrameFrame组件的对话框,为组件的对话框,为nonnon
10、-modalmodal形式,无标题形式,无标题JDialog(Frame owner,boolean modal)JDialog(Frame owner,boolean modal)建立一个属于建立一个属于FrameFrame组件的对话框,可决定组件的对话框,可决定modalmodal形式,无标题形式,无标题JDialog(Frame owner,String title)JDialog(Frame owner,String title)建立一个属于建立一个属于FrameFrame组件的对话框,为组件的对话框,为nonnon-modalmodal形式,有标题形式,有标题JDialog(Fram
11、e owner,String title,JDialog(Frame owner,String title,boolean modal)boolean modal)建立一个属于建立一个属于FrameFrame组件的对话框,可决定组件的对话框,可决定modalmodal形式,有标题形式,有标题构造方法BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学三个顶层容器的
12、例子10BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE例:FrameDemo.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class FrameDemo public static void main(String s)JFrame frame=new JFrame(FrameDemo);frame.
13、setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel emptyLabel=new JLabel();emptyLabel.setPreferredSize(new Dimension(175,100);frame.getContentPane().add(emptyLabel,BorderLayout.CENTER);frame.pack();frame.setVisible(true);引用自The Java Tutorials http:/ java.awt.*;import java.awt.event.*;import javax
14、.swing.*;public class TopLevelDemo public static void main(String s)JFrame frame=new JFrame(TopLevelDemo);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel yellowLabel=new JLabel();yellowLabel.setOpaque(true);yellowLabel.setBackground(Color.yellow);yellowLabel.setPreferredSize(new Dimensio
15、n(200,180);JMenuBar cyanMenuBar=new JMenuBar();cyanMenuBar.setOpaque(true);cyanMenuBar.setBackground(Color.cyan);cyanMenuBar.setPreferredSize(new Dimension(200,20);frame.setJMenuBar(cyanMenuBar);frame.getContentPane().add(yellowLabel,BorderLayout.CENTER);frame.pack();frame.setVisible(true);12引用自The
16、Java Tutorials http:/ 通过静态方法showDialog,可以产生四种简单的对话框 它们的方法参数中绝大部分(除了输入对话框可以不指定父窗口)都需要提供一个父窗口组件ParentComponent,只有关闭这些简单的对话框后,才可以返回到其父窗口,也就是说,它们绝大部分都是模态的BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE例:JOptionPaneDemo.java引用自The J
17、ava Tutorials http:/ java.awt.*;import java.awt.event.*;import javax.swing.*;public class JOptionPaneDemo extends JFrame implements ActionListener public JOptionPaneDemo()super(简单对话框);Container c=getContentPane();JButton button=new JButton(退出);button.addActionListener(this);c.setLayout(new FlowLayou
18、t();c.add(button);public void actionPerformed(ActionEvent e)/弹出对话框,并用变量select记录用户做的选择 int select=JOptionPane.showConfirmDialog(this,确定要退出吗?,确认,JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
19、EEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学结束语 这一节我们了解了Swing的顶层容器15BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE中间层容器存在的目的仅仅是为了容纳别的组件16BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
20、EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学中间层容器 一般用途的 JPanel JScrollPane JSplitPane JTabbedPane JToolBar 特殊用途的 JInternalFrame JRootPane(可以直接从顶层容器中获得)17BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑
21、莉,清华大学JRootPane的层次结构 glassPane 默认状态下是隐藏的。可以使用glassPane来截获所有要到达JRootPane别的部分的事件。layeredPane 分为很多层(layer),每层都有一个代表层深度的整数值(Z-order),深度值高的组件将覆盖在深度值低的组件上。contentPane 一般我们将所有组件添加到contentPane上。JmenuBar 是可选的,如果没有,contentPane就会充满整个顶层容器。18BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEE
22、EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学JPanel 一种经常使用的轻量级中间容器。19BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学JPanel 在默认状态下,除了背景色外不绘制任何东西。可以很容易的为它设置边框和绘制特性,有效地利用JPanel可以使版
23、面管理更为容易。可以使用布局管理器来规划它所容纳的组件的位置和大小 可以通过setLayout方法来改变其布局。也可以在创建一个JPanel对象时就为它确定某种布局方式。在默认状态下panel使用FlowLayout布局,将各组件布局在一行。20BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEJava语言程序设计(第2版),郑莉,清华大学JPanel类常用API名称名称说明说明JPanel()JPanel
24、()创建一个创建一个JPanelJPanel,默认布局是,默认布局是FlowLayoutFlowLayoutJPanel(LayoutManager layout)JPanel(LayoutManager layout)创建一个指定布局的创建一个指定布局的JPanelJPanelvoid add(Component comp)void add(Component comp)添加组件添加组件void add(Component comp,int index)void add(Component comp,int index)把组件添加到特定位置上把组件添加到特定位置上int getCompone
25、ntCount()int getComponentCount()获得这个获得这个panelpanel里所有组件的数量里所有组件的数量Component getComponent(int index)Component getComponent(int index)获得指定序号的某个组件获得指定序号的某个组件Component getComponentAt(int x,int y)Component getComponentAt(int x,int y)获得指定位置的某个组件获得指定位置的某个组件void remove(Component)void remove(Component)移除某个组件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计课件Java程序设计 9 Java 程序设计 课件
限制150内