- 1、本文档共137页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章-GUI程序设计与Applet.ppt
10 图形用户界面设计 Java建设小组 2012 主要内容 使用Swing构造GUI 组件、容器、布局管理 事件处理模型 Swing组件 Java2D绘图 Swing程序中的并发控制 键盘绑定 GUI程序示例 使用Swing构造GUI Java程序的GUI设计概念 Component-组件 Container-容器 LayoutManager-布局管理器 JComponent及其子类 Java的图形用户界面的最基本组成部分是组件,组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。 组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。 常用的 JButton、JLabel、JTextField JTextArea Container(容器) 容器本身也是一个组件,具有组件的所有性质,另外还具有容纳其它组件和容器的功能。 主要功能 组件的管理 布局管理 常用的有 JFrame 、JApplet、JDialog、JWindow LayoutManager(布局管理器) 为了使我们生成的图形用户界面具有良好的平台无关性, Java语言中,提供了布局管理器这个工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式。 每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。 是否使用布局管理器 使用布局管理器: 容器中的布局管理器负责各个组件的大小和位置,因此用户无法在这种情况下设置组件的这些属性。如果试图使用Java语言提供的setLocation(),setSize(),setBounds()等方法,则都会被布局管理器覆盖。 不使用布局管理器时: setLayout(null); 常用容器 顶层容器 JApplet、JDialog、JFrame和JWindow 非顶层容器 JPanel JFrame的例子1 public class MyJFrame extends JFrame { public static void main(String[] args) { try { MyJFrame frame = new MyJFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); }} public MyJFrame() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); }} JFrame的例子2 import java.awt.BorderLayout; import java.awt.Container; import java.awt.EventQueue; import javax.swing.JFrame; public class MyJFrame extends JFrame { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() {//新的线程对象 public void run() { try { MyJFrame frame = new MyJFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); }}}); } public MyJFrame() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); Container contentPane = this.getContentPane(); contentPane.setLayout(new BorderLayout(0, 0)); } } JFrame的例子3 public class JFrameDemo { private JFrame frame; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { JFrameDemo window = new JFrameDemo(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }
文档评论(0)