用java编写图形用户界面_Java图形用户界面编程

GUI代表图形用户界面(Graphical User Interface),Java API中提供了两套组件用户支持编写图形用户界面,包括AWT和Swing。

AWT使用本地操作系统的代码资源,被称为重量级组件。

Swing建立在AWT提供的基础之上,同时使用AWT相同的事件处理机制。Swing组件是轻量级的GUI组件,完全有纯Java代码编写,不依赖于任何特定平台,采用MVC架构方式来设计组件类。它将表示层分为三个分离的部分,分别是模型(model)、视图(view)、控制器(controler)。模型存储定义组件的数据,视图从模型中的数据创建组件的可视化表示,控制器处理用户与组件的交互操作,并在必要时更改模型或视图以响应用户行为。

开发Swing时因为视图和控制器存在很强的依赖关系,于是将视图和控制器组合称为UI委托的带个逻辑实体,所以Swing方法也被称为模型-委托架构或分离模型架构。

容器和组件

容器是用来放置其它组件特殊类型的组件;组件是独立的可视化控件。一个组件要显示出来就必须放置在一个容器内,容器也是组件,容器也可以放置其它容器。

容器分为重量级容器和轻量级容器。

重量级容器:

包括JFrame(窗体)、JDialog(对话框)、JWindow(窗口)、JApplet(小程序)。因为都继承AWT的Container,所以被成为重量级容器。每个程序至少要有一个重量级容器才可以提供图形化用户界面。

每个包含层次必须从重量级容器开始,重量级容器不能包含在其它任何容器中。我们所接触到的是层次面板(分为内容面板和可选的菜单栏),Swing的组件都放在内容面板中。

轻量级容器:

包括常用的面板Jpanel、分隔窗格、滚动窗格、标签窗格、工具条,它们和普通的组件一样继承自Swing类的JComponent,故成为轻量级容器。它们的存在主要是为了定位其它组件。

组件:

按钮(类JButton)、单选按钮(类JRadioButton)、复选框(类JCheckBox)、组合框(类JComboBox)、列表框(类JList)、文本字段(类JTextField)、纯文本区域(类JTextArea)等  都继承自Swing类的JComponent。

组件在容器中的布局:

组件要想在程序中显示就必须添加到容器中,组件在容器中的排列的形式根据是否使用布局管理器,以及使用何种类型的布局管理器来决定。

如果需要将组件在容器中精确定位,就必须使用容器的setLayout(null)方法,然后调用组件的setBounds()方法设置组件的边界。

组件采用精确定位后不支持窗口的改变。

AWT和Swing API 内置布局管理器

流式布局管理器FlowLayout(JPanel组件默认采用FlowLayout布局管理器):

安装组件添加顺序从左到右排列,可以控制容器组件居中、居左、居右,可以控制组件的垂直和水平间距。

BorderLayout管理器(不是用来放置组件的,常用于放置中间容器):

分为南北中东西五个区域,其中中间的面积和权力最大。

Jframe默认的管理器。

事件驱动编程

根据事件发生而执行代码的编程方式称为事件驱动编程。

例子:通过点击一个按钮触发一个事件,按钮是该事件的事件源,将监听对象注册到按钮上,当一个动作事件发生在按钮上时,按钮通过调用定义的监听器的actionPerformed()方法来探知监听器。

事件和事件源

运行Java GUI程序时,程序负责与用户交互,而事件则驱动程序的执行。事件用于描述发生了什么事情,可以由外部用户的行为触发,例如鼠标移动、按钮点击、键入字符等,也可以由程序的内部活动触发,例如数据模型发生变化,程序可以选择响应或者忽略事件。

生成一个事件并触发它的组件成为事件源。一个事件是一个事件类的实例对象,事件类的根对象是java.util.EventObject。

事件监听器、注册和处理事件

事件源触发一个事件但是事件源本事不处理,而是委托给对该 事件有兴趣的对象来处理。这个被委托来处理事件的对象,被称为事件监听器。

成为事件源上的一个事件监听器的方法:

1.创建一个监听器对象   监听器对象必须是对应的事件监听器接口的实例。Java为每种事件类型都提供了监听器接口。

2.将监听器对象注册到事件源上。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值