Java图形用户界面设计

合集下载

java实验5图形用户界面设计试验

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第四章课后习题解答

JAVA第四章课后习题解答
public Test4_8(){ super("简单的四则运算器"); setSize(300,400); setVisible(true); setLayout(new GridLayout(3,1));
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(5); btn1=new Button("+"); btn2=new Button("-"); btn3=new Button("*"); btn4=new Button("÷");
public class Test4_9 extends Frame implements ActionListener{ Button btn; public Test4_9(){ super("弹出窗口练习"); setSize(300,200);
5
setVisible(true); setLayout(new BorderLayout());
TextField txtFl1,txtFl2,txtFl3;
2
Button btn; public Test4_6(){
super("简单加法运算器"); setSize(300,200); setVisible(true); setLayout(new FlowLayout());
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(10); btn=new Button("=");

java图形用户界面设计教程

java图形用户界面设计教程

第4章图形用户界面设计本章要点● Java图形用户界面设计的基本知识●布局管理器的应用● Java常用图形用界面设计组件的应用● Java常用组件事件处理的应用4.1 认识AWT包和Swing包用户界面是计算机用户与软件之间的交互接口。

一个功能完善,使用方便的用户界面可以使软件的操作更加简单,使用户与程序之间的交互更加有效。

因此图形用户界面(graphics user interface,GUI)的设计和开发已经成为软件开发中的一项重要的工作。

Java语言提供的开发图形用户界面(GUI)的功能包括AWT(Abstract Window Toolkit)和Swing两部分。

这两部分功能由Java的两个包来完成-awt和swing。

虽然这两个包都是用于图形用户界面的开发,但是它们不是同时被开发出来了。

awt包是最早被开发出来的。

但是使用awt包开发出来的图形用户界面并不完美,在使用上非常的不灵活。

比如awt包所包含的组件,其外观是固定的,无法改变,这就使得开发出来的界面非常死板。

这种设计是站在操作系统的角度开发图形用户界面,主要考虑的是程序与操作系统的兼容性。

这样做的最大问题就是灵活性差,而且程序在运行时还会消耗很多系统资源。

由于awt包的不足表现,SUN公司于1998年针对它存在的问题,对其进行了扩展,开发出了Swing,即swing包。

但是,SUN公司并没有让swing包完成替代awt包,而是让这两个包共同存在,互取所需。

awt包虽然存在缺点,但是仍然有可用之处,比如在图形用户界面中用到的布局管理器、事件处理等依然采用的是awt包的内容。

Java有两个主要类库分别是Java包和Javax包。

在Java包中存放的是Java语言的核心包。

Javax包是Sun公司提供的一个扩展包,它是对原Java包的一些优化处理。

swing包由于是对awt包的扩展和优化,所以是存放在Javax包下的,而awt包是存放在Java包下的。

Java图形用户界面设计

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图形用户界面实验报告》
一、实验目的
本次实验旨在通过使用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图形用户界面

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中的GUI界面设计和事件处理入门

Java中的GUI界面设计和事件处理入门

Java中的GUI界面设计和事件处理入门一、引言Java是一种面向对象的编程语言,具有广泛的应用领域。

在软件开发过程中,GUI界面设计和事件处理是非常重要的一部分。

本文将介绍Java中的GUI界面设计和事件处理的入门知识,以帮助读者了解和掌握这方面的技术。

二、GUI界面设计基础GUI(Graphical User Interface,图形用户界面)是指通过图形、图像和动画等方式来显示信息,提供用户与计算机之间的交互。

在Java中,可以使用Swing和JavaFX等库来进行GUI界面设计。

1. 布局管理器在GUI界面设计中,布局管理器用于管理组件的布局方式。

Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout和GridBagLayout等。

使用不同的布局管理器可以实现不同的界面布局效果。

2. 组件组件是GUI界面的基本元素,可以是按钮、文本框、标签、列表框等。

在Java中,可以使用JButton、JTextField、JLabel和JList等类来创建各种组件。

可以设置组件的属性,如大小、位置和样式等。

3. 事件监听器事件监听器用于捕捉用户操作产生的事件,并做出相应的处理。

在Java中,可以使用addActionListener()方法为组件添加监听器,响应用户的点击事件。

事件监听器可以以匿名内部类的形式实现,也可以作为单独的类来处理。

三、GUI界面设计实例下面以一个简单的登录界面为例,介绍如何使用Java中的GUI 界面设计来创建一个具有交互功能的窗体。

1. 导入必要的类库首先需要导入javax.swing和java.awt等类库,以便使用其中的类和方法。

2. 创建窗体可以通过继承JFrame类来创建一个窗体对象,然后设置窗体的标题、大小和关闭方式等属性。

3. 添加组件可以使用JLabel、JTextField和JButton等组件类来创建对应的界面元素,并设置它们的属性和布局。

Java的GUI设计打造美观直观的用户界面

Java的GUI设计打造美观直观的用户界面

Java的GUI设计打造美观直观的用户界面Java是一种广泛使用的编程语言,拥有着强大的图形用户界面(GUI)设计能力。

通过使用Java提供的各种GUI库和工具,开发人员可以轻松地创建美观、直观的用户界面。

本文将介绍一些在Java中实现这样的GUI设计的方法和技巧。

一、选择合适的GUI库在Java中,有多个GUI库可供选择,比如Swing、JavaFX等。

选择合适的GUI库是设计美观直观界面的第一步。

Swing是一个成熟的GUI库,提供了丰富的组件和布局管理器,可以满足大部分GUI设计需求。

JavaFX是Java官方推荐的GUI库,它提供了更现代化的界面设计风格和更优秀的性能。

二、使用布局管理器布局管理器是GUI设计中重要的一环,它定义了组件在窗口中的位置和大小。

Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout等。

通过合理选择和组合这些布局管理器,可以实现各种复杂的界面布局。

三、使用合适的图标和图片图标和图片在GUI设计中起着很重要的作用,可以通过它们来提升用户界面的美观性和直观性。

Java提供了处理图标和图片的功能和类库,开发人员可以使用这些功能来加载、处理和显示各种图标和图片。

四、使用合适的颜色和字体颜色和字体也是GUI设计中非常重要的元素,可以用来强调界面的重要信息或者创建特定的视觉效果。

Java提供了各种颜色和字体的类库和功能,可以用来选择合适的颜色和字体样式。

五、增加交互性一个好的用户界面应该具有良好的交互性,能够方便用户进行操作。

Java提供了丰富的事件处理机制和监听器,可以实现交互性功能。

开发人员可以通过监听用户的操作,及时响应并更新界面,实现更好的用户体验。

六、进行界面美化除了以上的基本设计原则,开发人员还可以通过一些额外的技巧来进一步美化用户界面。

比如使用渐变色背景、添加阴影效果、使用动画效果等。

这些技巧可以使界面更加生动、有趣,并提升用户的整体体验。

JavaSwing图形用户界面的设计与实现方法

JavaSwing图形用户界面的设计与实现方法

JavaSwing图形用户界面的设计与实现方法一、引言随着计算机技术的不断发展,图形用户界面(Graphical User Interface,GUI)在软件开发中扮演着越来越重要的角色。

作为用户与软件之间的沟通桥梁,GUI的设计与实现至关重要。

本文将介绍JavaSwing图形用户界面的设计与实现方法,帮助开发人员更好地利用JavaSwing创建出功能强大、用户友好的GUI界面。

二、Swing概述JavaSwing是Java提供的一套GUI组件库,它基于Java AWT (Abstract Window Toolkit)构建而成,相对于AWT,Swing提供了更加丰富的组件和更高的灵活性。

Swing拥有独立于平台的外观,通过Java代码实现GUI界面的构建和事件处理。

使用Swing可以快速实现各种界面风格,并且易于调整和扩展。

三、Swing组件的使用1. 容器类组件:容器类组件是其他组件的父容器,对应于应用程序的窗口或面板,常用的容器类组件有JFrame、JPanel、JDialog等。

通过创建容器类组件,可以将其他组件添加到容器中并管理和布局。

2. 基本组件:基本组件是构建GUI界面的基本元素,常用的基本组件有JButton、JLabel、JTextField等。

它们可以用于实现用户输入、数据展示、按钮点击等交互操作。

3. 高级组件:高级组件是Swing提供的一些特殊功能的组件,如JTable、JTree、JFileChooser等。

它们可以用于展示表格、树状结构、文件选择等复杂的用户交互功能。

四、事件处理为了响应用户的操作,GUI界面需要进行事件处理。

在JavaSwing中,事件处理分为两个阶段:事件生成和事件响应。

当用户与界面进行交互时,会生成相应的事件,如按钮点击、鼠标移动等。

开发人员需要实现事件的监听器,并在事件发生时触发相应的操作。

五、界面布局界面布局是指组件在容器中的排列方式。

在Swing中,界面布局主要通过布局管理器(Layout Manager)实现。

Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理

Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理

《Java面向对象程序设计案例教程》
7.2 Swing基础
• Swing组件是Java语言提供的第二代GUI设计工 具包,它以AWT为基础,在AWT内容的基础上 新增或改进了一些GUI组件,使得GUI程序功能 更强大,设计更容易、更方便。
• Swing与AWT有以下不同。
• (1) Swing是完全用Java语言编写的,所以称 Swing组件是轻量级组件,没有本地代码,不依 赖操作系统的支持,比AWT构件具有更强的实 用性。Swing在不同的平台表现一致,并且有能 力提供本地窗口系统不支持的其他特性。
《Java面向对象程序设计案例教程》 • Swing的类层次结构如图所示:
《Java面向对象程序设计案例教程》
• 3. 简单的范例 • 一个简单的Swing GUI应用程序。该程序生成一个窗
口, • 窗口中有一个标签,用于显示输出。 • (1) 程序代码: • 1. import java.awt.* ; • 2. import javax.swing.* ; • 3. public class SwingDemo • 4. { • 5. public static void main(String args[]) • 6. { • 7. JFrame fm = new JFrame("第一个Windows程序") ; • 8. JLabel label = new JLabel("这是第一个GUI程序") ;
• 教材例题7-12 利用组合框显示、选取地名。
• 教材例题8.2 ,例题8.3用不同方法生成JFrame窗口
《Java面向对象程序设计案例教程》
• 7.3.2 面板容器JPanel
• 面板JPanel也是Java中常用到的容器之一,面板是一种透明 的容器,既没有标题,也没有边框,就像一块透明的玻璃。 与JFrame不同,它不能作为最外层的容器单独存在,它首 先必须作为一个构件放置到其他容器中,然后再把它作为容 器,把其他构件放到其中。

Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料

Java程序设计GUI 图形用户界面PPT 课件,Java学习和备课必备资料
JLayeredPane和JRootPane。
7
9.1 Swing 简介
9.1.1 窗体组件 JFrame 9.1.2 对话框组件 JDialog 9.1.3 对话框组件 JOptionPane 9.1.4 中间容器 JPanel 与 JscrollPane 9.1.5 标签组件 JLabel 9.1.6 文本组件 JTextField 与JTextArea
5
✓Swing包在图形界面设计上比AWT更丰富,更美观。Swing 拥有4倍于AWT的用户界面组件。 ✓是AWT包基础上的扩展,在很多情况下在AWT包的部件前 加上字母J即为Swing组件的名称,如:JFrame、JApplet、 JButton等。 ✓Swing组件都是AWT的Container类的直接子类或间接子类 。
17
9.1.3 对话框组件 JOptionPane
使用上面介绍的 JDialog 可以制作消息提示对话框、确定取消对话框等常用的对话框,但相 对来说要花费一些心思才能做出来,而 JOptionPane 组件直接提供了创建上述几种常用的对 话框的方法,大大方便了编程。 1.showMessageDialog()的静态方法弹出消息对话框,显示一条消息并等待用户确定。常用 的重载方法如下。
4、设置窗体的位置。setLocationRelativeTo(Component c):设置 窗体的相对位置。如果参数为 null,则窗体在屏幕中居中对齐。
5、如果希望在关闭窗体后程序可以随之停止,需要调用方法 setDefaultClose Operation()并传入参数 JFrame.EXIT_ON_CLOSE, 这句代码设置了关闭窗体后会停止程序的运行。 此外还有其他 3 个参数,简述如下。
口");。 2)带参的构造方法:用一个字符串作为参数,此字符串将成为窗体的标题。

图形用户界面设计

图形用户界面设计
13
【例】测试Button类的Applet。用户界面如图1所示。源程 序代码如下:
//程序文件名UseButton.java import java.awt.*; import java.applet.*; public class UseButton extends Applet {
String str1 = new String(); //声明按钮对象 Button b1; Button b2;
14
public void init() {
//构造对象 b1 = new Button(); b2 = new Button("按钮对象2"); //添加到界面 this.add(b1); this.add(b2); } public void start() {
15
b1.setLabel("按钮对象1"); str1 = b2.getLabel(); repaint(); } public void paint(Graphics g) { g.drawString("获取第二个对象的标签:" + str1,20,30); } }
String str1 = new String(); boolean b1 = false; boolean b2 = false;
23
Checkbox c1,c2,c3; Checkbox cRadio1,cRadio2; CheckboxGroup c; public void init() {
第五章 图形用户界面设计
1. 概述 2. 基本控制组件 3. 事件处理 4. 布局设计 5. 常用容器组件
1
概述
• 用户界面(User Interface) • 用户与计算机系统(各种程序)交互的接口

java图形界面设计含答案

java图形界面设计含答案

java图形界面设计含答案十一章图形用户界面程序设计入门一.选择题:1. 容器Panel和applet缺省使用的布局编辑策略是 BA、BorderLayoutB、FlowLayoutC、GridLayoutD、CarLayout2. .applet类的直接父类是: BA、Component类B、Container类C、Frame类D、Panel类3. .Swing与AWT的区别不包括 DA、Swing是由纯Java实现的轻量级构件B、Swing没有本地代码C、Swing不依赖操作系统的支持D、Swing支持图形用户界面4. 在编写Java applet程序时,若需要对发生事件作出响应和处理,一般需要在程序的开头写上 B _语句。

A、import java.awt.*;B、import java.applet.*;C、import java.io.*;D、import java.awt.event.*;5. 下面哪个操作是applet可以做的? BA、读取客户端部分系统变量B、读取客户端文件C、在客户端主机上创建新文件D、在客户端装载程序库6. 在Java中,所有类的根类是 AA./doc/302358554.html,ng.Object B./doc/302358554.html,ng.ClassC.java.applet.Applet D.java.awt.Frame7.在JAVA中实现图形用户界面可以使用组建AWT和组件 AA、swingB、SwingC、JOptionPaneD、import8.在JAVA中,一般菜单格式包含有下列类对象 DA、JMenuBarB、JMenuC、JMenuItemD、JMenuBar、JMenu、JMenuItem9.JAVA中提供了多种布局对象类。

其中使用卡片式布局的是 DA、FlowLayoutB、BoederLayoutC、BoxLayoutD、CardLayout10. 下列关于Applet的叙述中,错误的是 AA、Applet是Java类,所以可以由JDK中的解释器java.exe直接解释运行B、Applet应该定义为java.applet.Applet类或javax.swing.JApplet类的子类C、Applet与Application的主要区别在执行方式上D、通过在HTML文件中采用标记可以向Applet传递参数11 与Applet生命周期相关的方法的数量是 AA、4种B、3种C、2种D、5种12下列关于Applet的叙述中,错误的是 AA、Applet是Java类,所以可以由JDK中的解释器java.exe直接解释运行B、Applet应该定义为java.applet.Applet类或javax.swing.JApplet类的子类C、Applet与Application的主要区别在执行方式上D、通过在HTML文件中采用标记可以向Applet传递参数13 java中对Applet设置了严格的安全限制。

图形用户界面设计

图形用户界面设计
29
中间容器(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的图形用户界面设计一、实验目的1. 熟悉Java图形用户界面设计的基本概念和常用组件。

2. 掌握Swing库的使用,能够设计简单的图形用户界面。

3. 培养编程实践能力,提高问题解决能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse IDE for Java Developers3. 编程语言:Java4. 开发库:Swing库三、实验内容1. 创建一个简单的图形用户界面,包括窗口、按钮、标签、文本框等组件。

2. 实现按钮点击事件,输出信息到控制台。

3. 设计一个带有滚动条的面板,展示大量数据。

4. 使用布局管理器(如FlowLayout、BorderLayout、GridLayout等)对界面进行布局。

四、实验步骤1. 创建一个名为“GUIProject”的Java项目,在Eclipse中导入Swing库。

2. 创建一个名为“MainFrame”的类,继承自JFrame类,作为主窗口。

3. 在“MainFrame”类中,添加以下代码:```javaimport javax.swing.;import java.awt.;public class MainFrame extends JFrame {public MainFrame() {// 设置窗口标题setTitle("图形用户界面设计");// 设置窗口大小setSize(500, 400);// 设置关闭操作setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置布局管理器setLayout(new BorderLayout());// 创建按钮JButton button = new JButton("点击我");// 添加按钮到窗口add(button, BorderLayout.CENTER);// 添加事件监听器button.addActionListener(e -> {System.out.println("按钮被点击了!");});}public static void main(String[] args) {// 创建窗口实例MainFrame frame = new MainFrame();// 显示窗口frame.setVisible(true);}}```4. 修改“MainFrame”类,添加滚动条和标签:```javaimport javax.swing.;import java.awt.;public class MainFrame extends JFrame {public MainFrame() {// ...(省略其他代码)// 创建面板JPanel panel = new JPanel();// 设置布局管理器panel.setLayout(new GridLayout(0, 1));// 创建标签JLabel label = new JLabel("这是一个标签");// 添加标签到面板panel.add(label);// 创建滚动条JScrollPane scrollPane = new JScrollPane(panel); // 添加滚动条到窗口add(scrollPane, BorderLayout.CENTER);}// ...(省略其他代码)}```5. 运行程序,观察效果。

JAVA图形用户界面的设计与实现PPT课件

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 坐标,显示图像的容器对象。如:
来接收和处理这种事件。 ❖ 如果一个事件源注册了对应的监听者,那么

GUI设计java课程设计

GUI设计java课程设计

GUI设计java课程设计一、教学目标本课程旨在通过GUI设计java课程设计,让学生掌握图形用户界面(GUI)的设计与编程的基本知识和技能。

在学习过程中,学生将了解GUI设计的基本原则和方法,学习Java编程语言在GUI开发中的应用,并通过实际操作,完成一个简单的GUI应用程序的设计与实现。

1.理解图形用户界面(GUI)的基本概念和设计原则。

2.掌握Java编程语言在GUI开发中的基本语法和常用类库。

3.能够使用Java编程语言设计并实现一个简单的GUI应用程序。

4.能够运用所学知识和技能解决实际问题,进行创新性设计。

情感态度价值观目标:1.培养学生的创新意识和团队合作精神。

2.增强学生对计算机科学和软件工程的兴趣和热情。

二、教学内容本课程的教学内容主要包括三个部分:GUI设计的基本原理、Java编程语言在GUI开发中的应用、GUI应用程序的设计与实现。

1.GUI设计的基本原理:包括GUI的设计原则、常见界面元素和布局管理器等。

2.Java编程语言在GUI开发中的应用:包括Swing和JavaFX两个常用类库的使用方法。

3.GUI应用程序的设计与实现:通过实际操作,完成一个简单的GUI应用程序的设计与实现,包括界面设计、事件处理、数据绑定等。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。

1.讲授法:用于讲解GUI设计的基本原理和Java编程语言在GUI开发中的应用。

2.讨论法:通过小组讨论,促进学生对GUI设计原则和Java编程语言在GUI开发中的应用的理解和思考。

3.案例分析法:分析实际案例,让学生了解GUI设计的原则和方法在实际项目中的应用。

4.实验法:通过实际操作,让学生掌握Java编程语言在GUI开发中的应用,完成一个简单的GUI应用程序的设计与实现。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前言随着Internet的飞速发展,Java技术也得到了越来越广泛的应用。

而无论我们是采用J2SE、J2EE还是J2ME,GUI都是不能回避的问题。

现在的应用软件越来越要求界面友好、功能强大而又使用简单。

而众所周知,在Java中进行GUI 设计相对于其跨平台、多线程等特性的实现要复杂和麻烦许多。

这也是很多Java 程序员抱怨的事情。

但GUI已经成为程序发展的方向,所以我们也必须了解Java 的GUI设计方法和特点。

其实,采用Java提供的布局管理器接口和相应的布局管理类,我们也可以做出相当漂亮的界面来,当然实现起来肯定要比VB麻烦许多。

本文试图通过自己的开发经历介绍一些具体的应用实例,希望能给那些曾经象我一样苦闷的Java痴迷者一些帮助。

Java中的布局管理器2.1 为什么要使用布局在实际编程中,我们每设计一个窗体,都要往其中添加若干组件。

为了管理好这些组件的布局,我们就需要使用布局管理器。

比如说,设计一个简单的计算器,或一个文本编辑器等等。

这些组件是让JVM 自己任意安排呢?还是按照一定的位置关系进行规范的安排呢?当然应该选择后者。

将加入到容器的组件按照一定的顺序和规则放置,使之看起来更美观,这就是布局。

在Java中,布局由布局管理器 (LayoutManager) 来管理。

那么,我们在什么时候应该使用布局管理器?应选择哪种布局管理器?又该怎样使用布局管理器呢?如果你写的是GUI程序,在使用AWT/Swing组件时就不应硬性设置组件的大小和位置,而应该使用Java的布局管理器(LayoutManager)来设置和管理可视组件的大小和位置,否则就有可能造成布局混乱。

不信,你可以新建一个Frame(或JFrame),通过setBounds()方法往其中添加几个Button(或JButton),一旦你将窗体拉大或缩小时,你会发现组件的排列完全不是按你所预想的那样。

为了解决这个问题,即当窗体(或容器)缩放时,组件位置也随之合理调整,我们就需要使用布局管理器。

为此,我们首先要知道Java的布局方式,Java提供的API中有些什么布局管理器,它们的布局特点是什么。

2.2 Java的布局方式我们都知道,Java的GUI界面定义是由AWT类包和Swing类包来完成的。

它在布局管理上采用了容器和布局管理分离的方案。

也就是说,容器只管将其他组件放入其中,而不管这些组件是如何放置的。

对于布局的管理交给专门的布局管理器类(LayoutManager)来完成。

现在我们来看Java中布局管理器的具体实现。

我们前面说过,Java中的容器类(Container),它们只管加入组件(Component),也就是说,它只使用自己的add()方法向自己内部加入组件。

同时他记录这些加入其内部的组件的个数,可以通过container.getComponentCount()方法类获得组件的数目,通过container.getComponent(i)来获得相应组件的句柄。

然后LayoutManager类就可以通过这些信息来实际布局其中的组件了。

Java已经为我们提供了几个常用的布局管理器类,例如: FlowLayout、BorderLayout、GridLayout、GridBagLayout等。

下面列表说明它们的布局特点:事实上,在大多数情况下,综合运用好这些布局管理器已可以满足需要。

当然对于特殊的具体应用,我们可以通过实现LayoutManager或LayoutManager2接口来定义自己的布局管理器。

下面我们通过几个实例来了解几个常用的布局管理器的使用方法。

点此发表你的看法>>【已有位网友发表了看法】3.1 FlowLayout/GridLayout/BorderLayout的应用实例3.1.1应用背景假设我们要编写一个简单的计算器JApplet,其基本界面如下:3.1.2解决方法通过其界面要求可知,我们可以通过将"BackSpace"和"Clear"JButton放置在一个JPanel(1)中,采用FlowLayout布局;将显示结果的JTextField和该JPanel一起放置到另外一个JPanel(2),采用GridLayout布局;而将其它的JButton则放置在另外一个JPanel(3)中,采用GridLayout布局;再将JPanel(2)和JPanel(3)加入该JApplet,即可实现界面需求。

具体实现方法如下:这样,就一切OK啦。

具体的实现代码可参见附件中的CalculateApplet.java 文件。

3.2 带工具栏和状态栏的GridLayout/BorderLayout应用实例3.2.1实际问题在很多情况下我们需要动态设置工具栏和状态栏,看下面的应用实例:以上是在视图的工具栏和状态栏都被复选的时候,以下分别为某一个没选或都未选的情况。

3.2.2解决方法1/**工具栏JToolBar采用从左开始的FlowLayout布局*/2 JToolBar toolBar = new JToolBar();3 toolBar.setBorderPainted(false); //不画边界4 toolBar.setLayout(new FlowLayout(FlowLayout.LEFT));56/**窗体采用动态的BorderLayout布局,通过获取工具栏或状态栏的复选标记进行界面的动态调整*/7 JSplitPane splitPane = new JSplitPane();8 splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT); //设置统计窗口分隔条的方向9 splitPane.setDividerLocation(300); //设置分隔条的位置10 splitPane.setOneTouchExpandable(true);11 JCheckBoxMenuItem toolBarItem = new JCheckBoxMenuItem("工具栏(T)", true);12 JLabel statusLabel = new JLabel("当前统计目标:");13 JCheckBoxMenuItem statusBarItem = new JCheckBoxMenuItem("状态栏(S)", true);14/**设置系统窗体布局并动态设置工具栏和状态栏*/15private void setLayout()16 {17if (toolBarItem.getState() &&' statusBarItem.getState())18 {19this.getContentPane().add(BorderLayout.NORTH, toolBar); 20this.getContentPane().add(BorderLayout.CENTER, splitPa ne);21this.getContentPane().add(BorderLayout.SOUTH, statusLa bel);22 }23else if (toolBarItem.getState() && !statusBarItem.getState ())24 {25this.getContentPane().add(BorderLayout.NORTH, toolBar); 26this.getContentPane().remove(statusLabel);27 }28else if (statusBarItem.getState() && !toolBarItem.getState ())29 {30this.getContentPane().add(BorderLayout.SOUTH, statusLa bel);31this.getContentPane().remove(toolBar);32 }33else if (!toolBarItem.getState() && !statusBarItem.getState())34 {35this.getContentPane().remove(toolBar);36this.getContentPane().remove(statusLabel);37 }38this.show(); //添加或移去组件后刷新界面39 }40通过该方法即可实现界面的动态刷新与调整。

3.3 GridBagLayout应用实例3.3.1实际问题GridBagLayout是Java API提供的一个较复杂的布局管理器,利用好它可以解决许多实际编程中的令人烦恼的界面设计问题。

看下面的界面应用实例:3.3.2解决方法1/**系统的界面布局实现*/2 GridBagConstraints gridBag = new GridBagConstraints();3 gridBag.fill = GridBagConstraints.HORIZONTAL; //以水平填充方式布局4 gridBag.weightx = 0; //行长不变5 gridBag.weighty = 0; //列高不变6 fromLabel.setForeground(Color.blue);7 fromLabel.setFont(new Font("Alias", Font.BOLD, 16));8this.add(fromLabel, gridBag, 0, 1, 1, 1); //指定发信人标签位置9 receiveLabel.setForeground(Color.blue);10 receiveLabel.setFont(new Font("Alias", Font.BOLD, 16));11this.add(receiveLabel, gridBag, 0, 2, 1, 1); //指定收信人标签位置及大小12 ccLabel.setForeground(Color.blue);13 ccLabel.setFont(new Font("Alias", Font.BOLD, 16));14this.add(ccLabel, gridBag, 0, 3, 1, 1); //指定抄送人标签位置及大小15 subjectLabel.setForeground(Color.blue);16 subjectLabel.setFont(new Font("Alias", Font.BOLD, 16));17 his.add(subjectLabel, gridBag, 0, 4, 1, 1); //指定主题标签位置及大小18 accessoryLabel.setForeground(Color.blue);19 accessoryLabel.setFont(new Font("Alias", Font.BOLD, 16));20this.add(accessoryLabel, gridBag, 0, 5, 1, 1); //指定附件标签位置及大小21 gridBag.weightx = 100; //行自适应缩放22 gridBag.weighty = 0;//列高不变23 fromField.setText("admin@");24this.add(fromField, gridBag, 1, 1, 2, 1); //指定发信人文本域(JTextField)位置及大小25this.add(receiveField, gridBag, 1, 2, 2, 1); //指定收信人文本域(JTextField)位置及大小26this.add(ccField, gridBag, 1, 3, 2, 1); //指定抄送人文本域(JT extField)位置及大小27this.add(subjectField, gridBag, 1, 4, 2, 1); //指定主题文本域(JTextField)位置及大小28 accessoryArea.setEditable(false);29//设置不显示水平滚动条(该JTextArea置于JScrollPane中)30 accessoryScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTA L_SCROLLBAR_NEVER);31this.add(accessoryScroll, gridBag, 1, 5, 2, 1); //指定附件文本区(JTextArea)位置及大小32 gridBag.fill = GridBagConstraints.BOTH;//采用全填充方式布局33 gridBag.weightx = 100;//行自适应缩放34 gridBag.weighty = 100;//列自适应缩放35 mailArea.setBackground(Color.blue);36 mailArea.setForeground(Color.yellow);37 mailArea.setTabSize(4);38//指定信件主体区(JTextArea)的位置及大小。

相关文档
最新文档