JAVA图形用户界面实例
miglayout 例子
miglayout 例子【原创版】目录1.介绍 MigLayout2.MigLayout 的基本使用方法3.MigLayout 的布局选项4.MigLayout 的优点和局限性正文1.介绍 MigLayoutMigLayout 是一个基于 Java 的图形用户界面(GUI)布局管理系统。
它是 Migsoft 公司的产品,用于创建跨平台的桌面应用程序和 Web 应用程序。
MigLayout 提供了一种灵活、强大的方式来设计和管理应用程序的用户界面。
2.MigLayout 的基本使用方法要开始使用 MigLayout,首先需要下载并安装 MigLayout 库。
然后,可以通过以下步骤创建一个基本的 MigLayout 应用程序:(1)创建一个 Java 类,继承自 java.awt.Panel 或java.awt.Frame。
(2)在类的构造函数中,实例化一个 MigLayout 对象,并将其设置为容器的布局管理器。
(3)使用 MigLayout 的方法添加组件到容器中。
(4)设置组件的属性,如大小、位置和可见性等。
3.MigLayout 的布局选项MigLayout 提供了多种布局选项,可以满足不同需求。
以下是一些常用的布局选项:(1)流式布局(FlowLayout):默认的布局选项,按照组件添加的顺序从上到下、从左到右排列组件。
(2)边界布局(BoundaryLayout):按照组件的边界大小和位置排列组件。
(3)网格布局(GridLayout):将容器分为若干行和列,将组件按照网格排列。
(4)箱式布局(BoxLayout):将组件分组,并将组按照水平和垂直方向排列。
(5)堆叠布局(StackLayout):将组件按照堆叠顺序排列。
4.MigLayout 的优点和局限性MigLayout 的优点包括:(1)强大的布局功能,可以满足各种复杂的用户界面设计需求。
(2)易于学习和使用,降低了开发人员的学习成本。
java实验5图形用户界面设计试验
java实验5图形⽤户界⾯设计试验常⽤布局1)、流布局: FlowLayout 从左到右,⾃上⽽下⽅式在容器中排列,控件的⼤⼩不会随容器⼤⼩变化.容器.setLayout(new FlowLayout(FlowLayout.LEFT));2)、⽹格布局: GridLayout 按照指定⾏数与列数,将容器分成⼤⼩相等的单元格每个单元格放置⼀个控件. 不能将控件放在指定单元格 容器.setLayout(new GridLayout(3,4,10,15));3)、边界布局: BorderLayout 将容器分成东、西、南、北、中五个部分 容器.setLayout(new BorderLayout()); 窗⼝的内容⾯板默认布局就是边界布局。
容器.add(控件,BorderLayout.NORTH);4)、混合布局: 使⽤JPanel,将多个布局组合在⼀起使⽤5)、绝对布局 null: 以坐标定位 容器.setLayout(null); 每个控件在放置在容器之前,必须设置其边界 setBounds(x,y,width,height); btn.setBounds(10,100,30,60);常⽤事件1)、事件源 EventSource:能够触发事件控件如:JButton,JTextField,JFrame,JComboBox,....2)、事件 Event:ActionEvent,KeyEvent,WindowEvent,TextEvent,...3)、事件侦听者Listener(接⼝) ActionListener,WindowListener,...class A implements ActionListener{public void actionPerformed(ActionEvent e){....}}A lis=new A();4)、事件处理函数public void actionPerformed(ActionEvent e){....}事件流程:事件源触发事件-->事件源侦听者接收事件-->⾃动调⽤相应事件处理函数.实践编程1.在应⽤程序窗体中安排1个⽂本框,⼀个标签。
Java图形用户界面设计
13
(3) 事件监听器(Listener) 事件处理机制中的核心部分,主要的功能大致可以分为 两部分:第一,监听组件,观察组件有没有发生某类事 件;第二,如果监听的组件发生了某类事件,则调用对 应的动作处理方法立刻处理这个事件。 在Java事件处理机制中,监听器处于主体地位。与事件 分类对应,监听器也相应的分成若干种类型,例如,鼠 标事件对应鼠标监听器,键盘事件对应键盘监听器,窗 口事件对应窗口监听器等。
25
5.3.2 AWT组件库常用组件举例 【问题1】 在窗口f中,有一个文本框tf,三个按钮btn_1、 btn_2、btn_3。当使用鼠标点击btn_1时,文本框显示 btn_1按钮被点击,当使用鼠标点击btn_2按钮时,文本框 显示btn_2按钮被点击,当使用鼠标点击btn_3按钮或者窗 口f的关闭按钮时,窗口关闭,程序退出。
(4) Choice Choice表示下拉选择框组件,选择框中的每一个选项称 为一个Item,Item的类型一般为String字符串。 (5) Label Label表示标签组件,主要作用在于创建提示性的文本。
23
(6) MenuBar、Menu和MenuItem MenuBar表示菜单条组件,该组件由Menu菜单构成,而 Menu菜单又可由Menu菜单和MenuItem菜单项构成。 (7) TextField TextField表示文本框组件,与文本域组件不同的是, 文本框中只能有一行文本。 (8) TextArea TextArea表示文本域组件,可以容纳多行文本。
30
(3) JRadioButton和ButtonGroup 在Swing中与Checkbox对应的是JCheckBox,实际使用时, 如果需要创建单选框组的话,经常使用的是 JRadioButton而非JCheckBox。如果将多个JRadioButton 组件放在一个ButtonGroup中时,这些JRadioButton组件 将不再具有复选功能,而是只具有单选功能,也即变成 单选框。 (4) JComboBox JcomboBox对应于AWT中的Choice,表示下拉选择框组件, 选择框中的每一个选项称为一个Item,Item的类型一般 为String字符串,也可以是指定的泛型类型。
java图形用户界面实验报告
java图形用户界面实验报告
《Java图形用户界面实验报告》
一、实验目的
本次实验旨在通过使用Java图形用户界面(GUI)工具,掌握Java程序设计的
基本原理和方法,加深对Java语言的理解和应用。
二、实验内容
1. 使用Java的Swing和AWT等图形用户界面工具,设计一个简单的窗口界面。
2. 在窗口中添加按钮、文本框、标签等组件,并实现相应的事件处理。
3. 编写Java代码,实现窗口界面的布局和交互功能。
三、实验步骤
1. 首先,创建一个新的Java项目,并新建一个窗口类。
2. 在窗口类中使用Swing和AWT工具,设计窗口界面,并添加所需的组件。
3. 编写事件处理方法,实现按钮点击、文本框输入等操作的响应。
4. 调试和运行程序,检查窗口界面的布局和功能是否符合预期。
四、实验结果
经过一系列的编码和调试,最终实现了一个简单的Java图形用户界面程序。
该
程序具有良好的界面布局和交互功能,用户可以通过按钮点击和文本框输入进
行相应的操作。
五、实验总结
通过本次实验,我深入理解了Java图形用户界面的设计原理和实现方法,掌握
了Swing和AWT等GUI工具的使用技巧。
在今后的学习和工作中,我将继续
加强对Java编程的实践,不断提升自己的技能水平,为今后的软件开发工作打
下坚实的基础。
Java语言程序设计:第十章 Java图形用户界面
t}ryesflrs{eaetmD{teer.fypaau{cltkC(l)o; seOperation(EXIT_ON_CLOSE);
选中“ToGoelnUyke}DsiItrMt.caiegmtjefaebreamxtaeIcHtncnmDnLheeaistoea}ep((gidf)oE.ctae;veinkxoaurarAc单.ntcllsstcieo.dTnc击ephmpoardrtetmotLi(i“FneoeEleokte(nnFnS)xoieiSttl”ec(te;kla)}iC”exzA.cgceplkneaetT=dtipsoS“rFtsanicoSNecrnaeeeav)(exlem(){nc;ASeellp”(iz)t)ei保;o()n存;)源{ 文U件I和M工an程a文g件er.getS
边
有间距
CENTER
的 East
组 容se器tHgap(int hgap)
件
setVgap(int vgap)
组
将组件间的水平间距设置为指定的值
件
将组件间的垂直间距设置为指定的值
下边的组件
South
天津职业技术师范大学
BorderLayout
…… class testFrame extends JFrame {
天津职业技术师范大学
BorderLayout
North
左
边 West 的
组 容器
件
上边的组件 CENTER
下边的组件
South
右 边 的 East 组 件
天津职业技术师范大学
BorderLayout
North
方法
左 BorderLay边out( )
West 的
java中panel的用法 -回复
java中panel的用法-回复在Java编程中,图形用户界面(GUI)的开发是至关重要的部分。
其中,面板(Panel)是一个非常基础和常用的组件。
本文将详细介绍Java中Panel的用法。
一、什么是PanelPanel是Java Swing中的一个容器类,它是所有容器的父类。
它可以容纳其他组件,并且可以被添加到任何容器中。
它主要用于组织和布局其他的组件。
二、创建Panel创建一个新的Panel实例通常使用以下代码:javaJPanel panel = new JPanel();三、向Panel中添加组件我们可以将按钮、文本框等其他组件添加到Panel中。
例如,我们创建一个Button并将其添加到Panel中:javaJButton button = new JButton("Click me");panel.add(button);四、设置布局管理器默认情况下,Panel使用FlowLayout布局管理器。
但是,我们可以根据需要更改布局管理器。
例如,我们可以使用GridLayout布局管理器使Panel中的组件均匀分布:javapanel.setLayout(new GridLayout(2, 2));五、定制Panel的外观我们可以通过设置背景颜色、边框等属性来定制Panel的外观。
例如,我们将Panel的背景色设为红色:javapanel.setBackground(Color.RED);六、处理事件Panel可以作为事件源,当用户与Panel或其包含的组件交互时,可以触发事件。
我们可以添加事件监听器来处理这些事件。
例如,我们可以添加ActionListener监听器来处理按钮点击事件:javabutton.addActionListener(e -> {System.out.println("Button clicked");});七、显示Panel要显示Panel,我们需要将它添加到顶级容器中,如JFrame。
java ligerui treegrid 例子 -回复
java ligerui treegrid 例子-回复Java LigerUI TreeGrid 是一个强大的Java图形用户界面(GUI)组件,提供了创建可以展示层级关系的树形表格的功能。
本文将逐步介绍Java LigerUI TreeGrid的使用方法,包括配置和数据处理等方面。
首先,我们需要在Java项目中集成LigerUI TreeGrid组件。
可以从LigerUI 官方网站(javaimport com.ligerui.treegrid.model.TreeNode;import com.ligerui.treegrid.util.TreeGridUtil;import com.ligerui.treegridponent.TreeGrid;import com.ligerui.treegridponent.TreeGridColumn;import java.util.List;接下来,我们可以开始配置TreeGrid组件。
首先,创建一个TreeGrid实例,并设置其宽度、高度和表格显示的列数等基本属性。
javaTreeGrid treeGrid = new TreeGrid();treeGrid.setWidth("100");treeGrid.setHeight("500px");treeGrid.setColumns(3);然后,创建要显示的列对象,并设置列的标题、宽度和是否可排序等属性。
javaTreeGridColumn column1 = new TreeGridColumn("列1", "field1", 200);column1.setSortable(true);TreeGridColumn column2 = new TreeGridColumn("列2", "field2", 200);column2.setSortable(true);TreeGridColumn column3 = new TreeGridColumn("列3", "field3", 200);column3.setSortable(true);treeGrid.addColumn(column1);treeGrid.addColumn(column2);treeGrid.addColumn(column3);接下来,我们需要准备TreeGrid的数据。
逐步掌握JavaSwingUI界面设计
逐步掌握JavaSwingUI界面设计一、Swing界面设计概述Java Swing UI界面设计是Java语言中常用的图形用户界面(GUI)设计工具。
它提供了一系列的组件和容器,可以帮助开发人员创建出美观、交互性强的用户界面。
本文将介绍逐步掌握Java Swing UI界面设计的相关内容。
二、基础知识与组件1. Swing组件分类Java Swing UI界面设计中,可以使用多种不同类型的组件构建用户界面。
常用的Swing组件包括按钮、标签、文本框、下拉列表、菜单等。
这些组件可以通过布局管理器灵活地组合在一起,实现不同样式和功能的用户界面。
2. 布局管理器布局管理器是Java Swing UI界面设计中非常重要的一部分。
它负责决定组件在容器中的位置和大小。
Java Swing提供了多种布局管理器,如流式布局、边界布局、网格布局等。
开发人员可以根据具体需求选择适合的布局管理器,并结合组件的特性进行布局设计。
3. 事件处理在用户界面中,用户的交互行为会触发相应的事件,如点击按钮、选择菜单等。
Java Swing提供了事件模型和事件监听器机制,开发人员可以通过注册监听器来捕获和处理这些事件。
事件处理是Java Swing UI界面设计中的重要环节,可以实现用户交互的逻辑功能。
三、界面设计实例1. 登录界面设计以登录界面为例,介绍如何使用Java Swing进行界面设计。
首先,通过各种组件创建登录界面的基本元素,包括标签、文本框和按钮等。
然后,选择合适的布局管理器,将这些组件适当地放置在面板中。
接下来,通过事件监听器,实现登录按钮的点击事件,验证用户输入的用户名和密码是否正确,并进行相应的操作,如弹出提示框或跳转至其他界面。
2. 菜单设计菜单是用户界面中常见的功能区域,可以实现各种操作的选择和执行。
在Java Swing界面设计中,可以使用菜单条、菜单和菜单项等组件构建菜单。
通过设置相应的监听器,可以捕获菜单项的点击事件,并执行相应的功能操作。
Java图形用户界面ppt课件
18
1.4 布局管理器-FlowLayout
1. FlowLayout
FlowLayout 是Panel,Applet的缺省布局管理器。其组件的放 置规律是从上到下、从左到右进行放置,如果容器足够宽,第一 个组件先添加到容器中第一行的最左边,后续的组件依次添加到 上一个组件的右边,如果当前行已放置不下该组件,则放置到下 一行的最左边。
11
1.2 组件和容器
容器(Container)也是一个类,实际上是Component的 子类,因此容器本身也是一个组件,具有组件的所有 性质,但是它的主要功能是容纳其它组件和容器。
布局管理器(LayoutManager):每个容器都有一个布 局管理器,当容器需要对某个组件进行定位或判断其 大小尺寸时,就会调用其对应的布局管理器。
Java图形用户界面
Java界面设计的用途
Java 的图形界面工具包,可以用于工具类软 件开发、管理类软件开发、通用客户端开发 、银行客户端软件开发、Eclipse 插件开发等 方向。在许多知名的大型软件中,都能够见 到 Java 的身影,如思维导图软件、Eclipse、 IDEA 开发环境等。
5
如何选择 GUI 工具包
AWT、Swing、SWT是 Java 中的三大 GUI 工具包,其中 Swing 是最灵活、 强大的 GUI 工具包,所以在界面开发 中,首选 Swing ,它可以胜任绝大多 数开发工作。
6
本讲内容
1、AWT事件处理模型 2、布局管理器 3、Swing简介 4、Swing组件和容器
为了使我们生成的图形用户界面具有良好的平台无关 性,Java语言中,提供了布局管理器这个工具来管理 组件在容器中的布局,而不使用直接设置组件位置和 大小的方式。
idea swing开发示例
idea swing开发示例Swing开发示例Swing是Java图形用户界面(GUI)工具包的一部分,它提供了丰富的组件库和可定制的界面设计,使得开发人员能够轻松创建各种功能强大的桌面应用程序。
在这篇文章中,我们将以Swing开发示例为主题,一步一步回答如何使用Swing库创建一个简单的应用程序。
第一步:设置开发环境首先,我们需要确保我们的计算机上安装了Java Development Kit(JDK)。
JDK包含了我们需要编译和运行Java应用程序的工具。
我们还需要一个Java集成开发环境(IDE)来简化代码编写和项目管理的过程。
Eclipse和IntelliJ IDEA是两个常用的Java IDE选择,你可以根据个人喜好选择其中一个。
第二步:创建一个新的Swing项目一旦我们设置好了开发环境,我们就可以创建一个新的Swing项目。
打开IDE并选择创建一个新的Java项目。
为项目命名,并选择一个适当的位置来保存项目文件。
第三步:导入Swing库在我们开始编写代码之前,我们需要导入Swing库以便我们可以使用其所有功能。
在项目配置中,我们需要添加Swing库作为项目的依赖项。
这可以通过在项目的构建路径或依赖项设置中完成。
第四步:创建一个主窗口现在我们准备开始编写代码了。
首先,我们将创建一个主窗口,作为我们应用程序的入口点。
我们可以通过创建一个类扩展JFrame类来实现这一点。
JFrame是Swing中最基本的顶级容器,它表示一个窗口。
我们可以在主类中添加以下代码来创建一个简单的主窗口:import javax.swing.*;public class MainFrame extends JFrame {public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {new MainFrame();}});}public MainFrame() {setTitle("My Swing Application");setSize(400, 300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}}在上面的代码中,我们重写了JFrame的构造函数来设置窗口的标题,大小,关闭操作和可见性。
Java实用教程 第11章 AWT图形用户界面编程
fr.add(p1, BorderLayout.NORTH);
// 将p1添加到窗口NORTH区域(即顶部)
Panel p2 = new Panel();
// 创建面板p2
p2.setLayout(new GridLayout(4, 5, 3, 3));
// 设置p2使用GridLayout布局
String[] name = {"7", "8", "9", "÷", "√", "4", "5", "6", "×", "%"
AWT容器
Window和Frame
Window和Frame
Window有两个子类:Frame和Dialog。Frame带有标题,而且可以调整大小。Dialog可以被移动, 但是不能改变大小。Frame有一个构造方法Frame(String title),通过它可以创建一个以参数为标题 的Frame对象。Frame的add()方法向容器中加入其他组件。Frame被创建后是不可见的,必须通过 以下步骤使它成为可见。
setLocation()、setSize()或setBounds() 方法,为它们在容器中一一定位。
布局管理器
1.流式布局管理器
FlowLayout是把组件从左向右、从上向下,一个接一个地放到容器中,组件之间的默认间隔 (水平和垂直)为5个像素,对齐方式为居中。组件的大小由布局管理器根据组件的最佳尺寸 来决定。 FlowLayout的构造方法:
, "1", "2", "3", "-", "1/x", "0", ".", "C", "+", "±"};
Java与桌面应用打造跨平台的形界面程序
Java与桌面应用打造跨平台的形界面程序随着信息技术的不断发展和普及,桌面应用程序成为了我们日常工作、学习和娱乐的必备工具。
然而,由于不同操作系统的存在,不同平台之间的应用程序往往无法兼容,给用户带来了不便。
为此,Java的出现为我们提供了一种解决方案,通过使用Java语言和各种相关技术,我们可以打造跨平台的形用户界面程序。
一、Java语言的特点Java语言具有以下几个特点,使得它成为了开发跨平台应用程序的首选语言。
1. 跨平台性:Java语言的最大优势就是跨平台性。
通过使用Java虚拟机(JVM)来执行字节码,Java程序可以在不同的操作系统上运行,而无需修改代码。
这为我们打造跨平台的桌面应用程序提供了基础。
2. 面向对象:Java是一种面向对象的语言,开发者可以通过面向对象的思想和方法来构建可重用、可维护的代码。
这使得我们能够更加方便地开发和管理复杂的桌面应用程序。
3. 强大的类库支持:Java拥有丰富的类库,涵盖了各种常用的功能和组件,如图形界面、网络通信、数据库访问等。
通过利用这些类库,我们可以加快开发速度,提高代码的可靠性。
二、Java与桌面应用程序的结合Java提供了多个工具和框架,可以帮助我们构建跨平台的桌面应用程序。
下面介绍几个常用的工具和框架。
1. Swing:Swing是Java提供的一个GUI工具包,它基于Java AWT (Abstract Window Toolkit),提供了丰富的界面组件和布局管理器。
通过使用Swing,我们可以快速构建漂亮的界面,并添加各种交互功能。
2. JavaFX:JavaFX是Java官方推出的一套现代化的桌面应用程序开发工具。
它提供了基于XML的界面定义语言和丰富的界面组件,支持多媒体、动画和特效等高级功能。
JavaFX相较于Swing更加灵活和强大,被认为是未来桌面应用程序开发的趋势。
3. AWT:Java AWT是Java最早提供的GUI工具包,它基于操作系统的原生界面组件,因此在外观和性能上与操作系统更加接近。
idea创建java桌面程序实例 -回复
idea创建java桌面程序实例-回复如何创建一个基于Java的桌面应用程序实例Java是一种非常流行的编程语言,广泛应用于各种软件开发领域。
在本文中,我们将一步步介绍如何创建一个基于Java的桌面应用程序实例。
本实例的主题是[中括号内的内容]。
让我们开始吧!第一步:安装Java开发工具包(JDK)要开发基于Java的桌面应用程序,首先需要安装Java开发工具包(JDK)。
JDK是一组开发工具,其中包括Java编译器、Java虚拟机(JVM)和其他与Java开发相关的工具。
可以从Oracle的官方网站上下载适合您操作系统的最新版本的JDK,并按照安装向导完成安装。
第二步:选择Java图形用户界面(GUI)库Java提供了多个图形用户界面(GUI)库,可用于创建桌面应用程序。
其中一些流行的库包括Swing、JavaFX和AWT。
在本实例中,我们将选择Swing库。
Swing库是Java最早的GUI库之一,它提供了一套丰富的界面组件,可用于创建具有丰富功能和良好用户体验的桌面应用程序。
第三步:创建Java项目在开始编写代码之前,我们需要创建一个Java项目。
可以使用任何Java集成开发环境(IDE)或文本编辑器创建Java项目。
在这里,我们将使用Eclipse IDE来创建项目。
打开Eclipse IDE并选择“File -> New -> Java Project”,然后输入项目的名称并点击“Finish”按钮来创建项目。
第四步:导入Swing库在项目中使用Swing库,我们需要将Swing库导入到项目中。
在Eclipse IDE中,我们可以通过右键单击项目,并选择“Build Path -> Configure Build Path”来添加Swing库。
在弹出的对话框中,选择“Libraries”选项卡,然后点击“Add Library”按钮。
选择“Swing库”并点击“Next”按钮,然后点击“Finish”按钮来导入Swing库。
图形用户界面设计
中间容器(Jpanel)
1. 将组件添加到JFrame中 2. JPanel的使用
30
1、 将组件添加到JFrame中
方式之一: frame.getContentPane().add(childCom
ponent) 用getContentPane()方法获得JFrame的
内容面板,再对其加入组件,一般只使 用该方式添加组件。
Swing 是为了解决 AWT 存在的问题而 新开发的包,它以 AWT 为基础的。
10
上图列举了AWT和 Swing的关系,也可 以看出Swing是继承自AWT的。主要利 用Swing来设计图形化界面程序。
11
图形化界面设计—容器
1. Java基本类(JFC) 2. AWT和Swing的区别 3. Swing基本框架 4. 图形化设计步骤 5. 组件容器的使用
54
实例:
55
实例:
56
实例二:在中间位置中添加9个按钮
57
58
布局管理器之GRIDLAYOUT(网 格布局)
59
网格布局特点:
使容器中的各组件呈M行×N列的网格状分布。 网格每列宽度相同,等于容器的宽度除以网格
的列数。 网格每行高度相同,等于容器的高度除以网格
的行数。 各组件的排列方式为:从上到下,从左到右。 组件放入容器的次序决定了它在容器中的位置。 l容器大小改变时,组件的相对位置不变,大小
图形用户界面设计
1
Java图形化界面设计——容器 (JFrame)
2
程序是为了方便用户使用的,因此实现 图形化界面的程序编写是所有编程语言 发展的必然趋势,在命令提示符下运行 的程序可以让我们了解java程序的基本 知识体系结构,现在就进入java图形化 界面编程。
Java程序设计图形用户界面ppt课件
▪ AWT中最灵活、最复杂的布局管理器,各组件所占空 间可以不相同且灵活规定,参见参考书及API文档;
.
17
第10章 图形用户界面
容器的嵌套使用举例
范例:NestedContainer.java
.
18
第10章 图形用户界面
默认布局管理器
Component Container
些空的方法体。
.
27
第10章 图形用户界面
10.3.4 内部类及匿名类在事件处 理中的应用
在Java事件处理程序中,由于与事件相关的事件 监听器的类经常局限于一个类的内部,所以经常 使用内部类。而且定义的内部类在事件处理中的 使用就实例化一次(在其他地方不会用到该类,所 以不需要类名),所以经常使用匿名类。
.
25
第10章 图形用户界面
10.3.2 事件监听器的注册
注册事件监听器只需要使用组件对象的 addXXXXEvent方法,它可以指明该对象感兴趣的 事件监听器(即实现了某个AWTEventListener子 接口的对象)。这样,当事件源发生了某种类型 的事件时,则触发事先已注册过的监听器中相应 的处理程序。
Window
Frame
Dialog
Panel Applet
BorderLayout
FlowLayout
.
19
第10章 图形用户界面
布局管理器总结(1)
▪ Frame
Frame是一个顶级窗口。 Frame的缺省布局管理器为BorderLayout。
▪ Panel
Panel无法单独显示,必须添加到某个容器中。 Panel的缺省布局管理器为FlowLayout。 当把Panel作为一个组件添加到某个容器中后,该Panel仍然可以
JAVA图形用户界面的设计与实现PPT课件
Applet Frame Dialog FileDialog
容器
组件名
26
Component 类的常用方法 public void add (PopupMenu popup):在组件上加上一个弹出菜单。 public Color getBackground ( ): 获得组件的背景色。 public Font getFont ( ):获得组件使用的字体。 public Color getForeground ( ):获得组件的前景色。 public Graphics getGraphics( ):获得绘图用的 Graphics 对象。 public void repaint ( int x, int y, int width, int height ):以指点的坐标点
只能用做容器组件加入其他容器。 3)通常用于层次化界面组件管理。
P260:例 7-20 TestPanel . java
❖ 例子:ch7\src\MyFrame.java
6
组件
组件:图形用户界面的最小单元,用来完成与用户的交互;
用户界面标准化的结果,例如:标签、文本框、按钮、菜单 等。
使用组件的步骤: 1)创建组件类的对象,指定其属性; 2)使用某种布局策略; 3)将组件对象注册给对应的事件监听器,覆盖事件处理方
Java 支持的图像文件格式包括bmp,gif,jpeg 等。
16
二、绘制图像:
drawImage( Image img, int x, int y, ImageObserver observer ) 有4个 参数:图像的 Image 对象,显示图像的左 上角 x、y 坐标,显示图像的容器对象。如:
来接收和处理这种事件。 ❖ 如果一个事件源注册了对应的监听者,那么
实验4-建立图形用户界面
实验4-建立图形用户界面实验7 建立图形用户界面一、实验目的了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
二、实验要求1. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
2. 掌握编写独立运行的窗口界面的方法。
3. 了解Java Swing 组件的使用方法。
4. 了解对话框的使用方法。
三、实验内容(1)建立独立运行的窗口界面并使用匿名类最常使用的包含组件的容器是窗口,在Java 中窗口由Frame 类生成。
1.创建一个窗口界面程序功能:创建一个具有关闭功能的空白窗口。
编写KY7_5_W.java 程序文件,源代码如下。
import java.awt.*;import java.awt.event.*;public class KY7_5_W {public static void main(String[] args) {new KY7_5_W();}KY7_5_W(){Frame f=new Frame("初始窗口");//创建窗口对象f.setSize(350,200);//设置窗口大小f.setVisible(true);//设置窗口是可视的f.addWindowListener(new WindowAdapter() {//为窗口添加窗口事件适配器public void windowClosing(WindowEvent e) {//关闭窗口事件的方法System.exit(0);}}}♦编译并运行程序2.在窗口中添加组件♦程序功能:在窗口中添加组件。
♦编写KY7_6.java 程序文件,源代码如下。
import java.awt.*;import java.awt.event.*;public class KY7_6 extends Frame implements ActionListener {Button btn1, btn2;TextField f,tf1,tf2;TextArea Area;KY7_6() {super("添加组件的窗口");addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}setSize(350,250); //设置窗口大小setLocation(200,200);//设置窗口显示位置setFont(newFont("Arial",Font.PLAIN,12)); //设置字体setLayout(new FlowLayout());Area=new TextArea (6,40);tf1=new TextField(10); tf2=new TextField(10);btn1=new Button("显示"); btn2=new Button("退出");f=new TextField(20);add(Area); add(new Label("用户名"));add(tf1); add(new Label("电话"));add(tf2); add(f); add(btn1); add(btn2);tf1.addActionListener(this);tf2.addActionListener(this);btn1.addActionListener(this);btn2.addActionListener(this);show();}public static void main(String args[]) {new KY7_6();}public void actionPerformed(ActionEvent e) {if (e.getSource()==btn1)f.setText("你按下了“" + e.getActionCommand() + "”按钮");if (e.getSource()==tf1)Area.append("用户名:"+tf1.getText()+"\n");if (e.getSource()==tf2)Area.append("电话:"+tf2.getText()+"\n");if (e.getSource()==btn2) {for (int i=0; i<100000000; i++);dispose();//只关闭当前窗口,注销该对象}}}编译并运行程序3.为窗口添加菜单♦程序功能:在窗口中添加菜单栏,在菜单栏添加菜单项,并添加下拉菜单和2 级菜单,通过选择菜单项可以执行不同操作,如“打开”可打开KY6_6 类生成的窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
public void actionPerformed(ActionEvent e) { msPanel.moveUp();
} }); jbDown.addActionListener(new ActionListener(){
} }); //设置整个框架布局 setLayout(new BorderLayout()); //创建面板,用来放置 label 和 JCheckBox JPanel panel=new JPanel(); panel.setLayout(new BorderLayout());
JPanel RadioPanel=new JPanel(); JLabel label=new JLabel("Select a message Panel Background"); panel.add(label,BorderLayout.NORTH); panel.add(RadioPanel,BorderLayout.CENTER); //框架添加组件 add(panel,BorderLayout.NORTH); add(msPanel,BorderLayout.CENTER); add(jpButton,BorderLayout.SOUTH);
public void actionPerformed(ActionEvent e) { msPanel.moveDown();
} }); jcCenter.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) { msPanel.setCentered(jcCenter.isSelected());
FontMetrics fm=g.getFontMetrics(); x=(getWidth()/2-fm.stringWidth(string)); y=(getHeight()/2+fm.getAscent()/2); } g.drawString(string, x, y); } }
});
jrGreen.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { msPanel.setBackground(Color.GREEN);
} });
//按下时移动字符串 msPanel.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e) { msPanel.setXY(e.getX(), e.getY());
} }); } }
MessagePanel.java import java.awt.FontMetrics; import java.awt.Graphics; import javax.swing.JPanel; class MessagePanel extends JPanel{
});
jrWhite.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { msPanel.setBackground(Color.WHITE); }
});
jrGray.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { msPanel.setBackground(Color.GRAY); }
private String string; private boolean centered=false; private int x=20; private int y=20; private int interval=10;
MessagePanel(){ } MessagePanel(String string){
public void actionPerformed(ActionEvent e) { msPanel.moveLeft();
} }); jbRight.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) { msPanel.moveRight();
//设置 RadioBox 的布局方式 RadioPanel.setLayout(new FlowLayout(FlowLayout.LEADING)); //添加 RadioBox 的组件 RadioPanel.add(jrRed=new JRadioButton("Red")); RadioPanel.add(jrYellow=new JRadioButton("Yellow")); RadioPanel.add(jrWhite=new JRadioButton("White")); RadioPanel.add(jrGray=new JRadioButton("Gray")); RadioPanel.add(jrGreen=new JRadioButton("Green")); //限制只能选择一个单选框 ButtonGroup bg=new ButtonGroup(); bg.add(jrRed); bg.add(jrYellow); bg.add(jrWhite); bg.add(jrGray); bg.add(jrGreen);
//添加 JRadioBox 的监听器 jrRed.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) { msPanel.setBackground(Color.red);
} });
jrYellow.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { msPanel.setBackground(Color.YELLOW); }
if(x<=0) x=getWidth();
repaint(); } public void moveUp(){
y-=interval; if(y<=0)
y=getHeight(); repaint(); } public void moveDown(){ y+=interval; if(y>=getHeight())
this.string=string; } public void setXY(int x,int y){
this.x=x; this.y=y; repaint(); } public void moveRight(){ x+=interval; if(x>=getWidth())
x=0; repaint(); } public void moveLeft(){ x-=interval;
public class ButtonPanel extends JFrame{ private JRadioButton jrRed,jrYellow,jrWhite,jrGray,jrGreen; private JButton jbLeft,jbRight,jbDown,jbUp; private JCheckBox jcCenter; private MessagePanel msPanel=new MessagePanel("Hello World,China");
ButtonPanel.java
import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton;
y=0; repaint(); }
public boolean isCentered(){ return centered;
} public void setCentered(boolean centered){
this.centered=centered; repaint(); } protected void paintComponent(Graphics g){ super.paintComponent(g); if(centered){
jbRight.setMnemonic('R'); jbDown.setMnemonic('D'); jbUp.setMnemonic('U'); jcCenter.setMnemonic('C'); //添加按钮和单选框监听器 jbLeft.addActionListener(new ActionListener(){