java 图形用户界面设计
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第四章课后习题解答

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图形用户界面设计教程

第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图形用户界面设计

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图形用户界面设计1
实验九Java图形用户界面设计(1)一实验目的(1)掌握Frame与面板的使用(2)布局管理器的使用(3)布局管理器的使用(4)边界风格的使用(5)掌握简单Java事件的处理二实验内容1、创建并显示一个标题为“My Frame”,背景色为白色,大小为1000×1000的框架。
在该框架中放置八个按钮,按钮的标题分别为“按钮1”、……“按钮8”。
采用FlowLayout布局管理器。
程序:import java.awt.*;import javax.swing.*;public class Con1{private JFrame f;private JButton b1,b2,b3,b4,b5,b6,b7,b8;public static void main(String args[]){Con1 c=new Con1();c.go();}public void go(){f=new JFrame("My Frame");Container con=f.getContentPane();con.setLayout(new FlowLayout());con.setBackground(Color.white);con.setLayout(new FlowLayout(FlowLayout.RIGHT,920,50));b1=new JButton("按键1");b2=new JButton("按键2");b3=new JButton("按键3");b4=new JButton("按键4");b5=new JButton("按键5");b6=new JButton("按键6");b7=new JButton("按键7");b8=new JButton("按键8");con.add(b1); c on.add(b2); c on.add(b3); c on.add(b4);con.add(b5); c on.add(b6); c on.add(b7); c on.add(b8);f.setSize(1000,1000);f.setVisible(true);}}结果:2、编写一个java程序,在程序中生成一个框架窗口,设置窗口的布局管理器为网格式布局管理器,往窗口中加入9个按钮程序:结果:3、编写一个java程序,单击窗口的“关闭”按钮时退出程序,使用BorderFactory的静态方法创建边界,运行效果如下图所示:结果:4、构造一个Frame窗口,单击窗口的“关闭”按钮时退出程序(参考JFrame的setDefaultCloseOperation方法);Frame中包含一个“Presss Me”按钮,单击该按钮,在控制台显示单击次数:“你已经单击按钮X次!”。
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提供了丰富的事件处理机制和监听器,可以实现交互性功能。
开发人员可以通过监听用户的操作,及时响应并更新界面,实现更好的用户体验。
六、进行界面美化除了以上的基本设计原则,开发人员还可以通过一些额外的技巧来进一步美化用户界面。
比如使用渐变色背景、添加阴影效果、使用动画效果等。
这些技巧可以使界面更加生动、有趣,并提升用户的整体体验。
逐步掌握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面向对象程序设计案例教程课件:图形用户界面开发与事件处理
《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不同,它不能作为最外层的容器单独存在,它首 先必须作为一个构件放置到其他容器中,然后再把它作为容 器,把其他构件放到其中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
根面板
根面板由一个玻璃面板(glassPane)、一个内容 面板(contentPane)和一个可选择的菜单条 (JMenuBar)组成,而内容面板和可选择的菜单 条放在同一分层面板(LayeredPane)。 玻璃面板是完全透明的, 缺省值为不可见,为接 收鼠标事件和在所有组 件上绘图提供方便。 在面板可以进行的操作 包括:添加组件和绘图
在Frame上绘图-绘图函数I
设置颜色(设置之后一直生效,直到重新设置为止)
g.setColor(Color color);
绘制文本
g.drawString(String string, int x, int y);
绘制直线
g.drawLine(int x1, int y1, int x2, int y2);
匿名内部类的使用 getSelectedIndex函数用于获取当前选中的元素的索引
JTextArea和JScrollPane
JTextArea有6个构造函数,其中有:
JTextArea(String text, int rows, int columns)
JScrollPane有4个构造函数,其中有:
绘制多边形
g.drawPolygon(Polygon polygon); g.fillPolygon(Polygon polygon); g.drawPolygon(int[ ] xpoints, int[ ] ypoints, int npoints); g.fillPolygon(int[ ] xpoints, int[ ] ypoints, int npoints);
绘制矩形(draw和fill的区别在于是否用颜色填充内部)
g.drawRect(int x, int y, int w, int h); g.fillRect(int x, int y, int w, int h); g.drawRoundRect(int x, int y, int w, int h, int aw, int ah); g.fillRoundRect(int x, int y, int w, int h, int aw, int ah); g.draw3DRect(int x, int y, int w, int h, int raised); g.fill3DRect(int x, int y, int w, int h, int raised);
JRadioBox(String text)
ButtonGroup类用于建立互斥按钮组,也就是加入该组 的按钮任何时刻只能有一个处于on的状态,其余的都 是off ItemListener接口的itemStateChanged函数会在元素选 择状态改变(selected or deselected)的时候自动被触 发
为了能够处理一些事件,例如键盘输入,失去焦点等 等,一般的组件都必须用addActionListener添加监听的 功能。 ActionListener接口的actionPerformed函数在事件发生 后会自动触发,接着使用ActionEvent getSource()函数 可以获取事件的发生源。
JComboBox和JList
JComboBox的构造函数
JComboBox() JComboBox(ComboBoxModel aModel) JComboBox(Object[] items) JComboBox(Vector items)
JList的构造函数
JList() JList(ListModel dataModel) JList(Object[] listData) JList(Ve口的具体实现,允许从一个现有 的图像文件创建图标。 创建好的JLabel通过add函数加入到内容面板。
JTextField和JPasswordField
二者的构造函数除了类名之外完全相同
J*Field // *表示Text或者Password,下同 J*Field(Document doc, String text, int columns) J*Field(int columns) J*Field(String text) J*Field(String text, int columns)
JScrollPane(Component view)
注意小应用程序JApplet本身也是一种容器,所 以可以在上面放置组件。
只有一个按钮的GUI程序
import javax.swing.*; import java.awt.*; public class MySecondGUI { public static void main(String args[]) { JFrame frame = new JFrame("这里是标题"); Container container = frame.getContentPane(); Button button = new Button("我是按钮"); container.add(button); frame.setSize(200, 160); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } 注意到添加了红色部分的代码之后,按钮已经贴到了内容面 }
最简单的一个GUI程序
import javax.swing.*; public class MyFirstGUI { public static void main(String args[]) { JFrame frame = new JFrame("这里是标题"); frame.setSize(200, 160); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
第六章 图形用户界面设计
黄绍辉 厦门大学计算机科学系 E-mail: hsh@
6.1 基本GUI组件和容器
AWT是Swing的基础。AWT设计的初衷是支持开发小 应用程序的简单用户界面。但是AWT存在着严重的缺 陷,并且缺少剪贴板、打印支持、键盘导航等特性。 Swing是由100%纯Java实现的,是用Java实现的轻量 级(light-weight)组件,没有本地代码,不依赖操作 系统的支持,这是它与AWT组件的最大区别。 Swing采用了一种MVC的设计范式,即“模型-视图-控 制”(Model-View-Controller),其中模型用来保存内 容,视图用来显示内容,控制器用来控制用户输入。 Swing外观感觉采用可插入的外观感觉(Pluggable Look and Feel,PL&F),并且程序在一个平台上运行 时能够有不同的外观。用户可以选择自己习惯的外观。
在Frame上绘图-绘图函数II
绘制椭圆
g.drawOval(int x, int y, int w, int h); g.fillOval(int x, int y, int w, int h);
绘制扇形
g.drawArc(int x, int y, int w, int h, int startAngle, int arcAngle); g.fillArc(int x, int y, int w, int h, int startAngle, int arcAngle);
组件的分类
组件从功能上可分为:
1) 顶层容器:JFrame,JApplet,JDialog,JWindow共4个 2) 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar 3) 特殊容器:在GUI上起特殊作用的中间层,如 JInternalFrame,JLayeredPane,JRootPane. 4) 基本控件:实现人机交互的组件,如JButton, JComboBox, JList, JMenu, JSlider, JtextField。 5) 不可编辑信息的显示:向用户显示不可编辑信息的组件, 例如JLabel, JProgressBar, JToolTip。 6) 可编辑信息的显示:向用户显示能被编辑的格式化信息的 组件,如JColorChooser, JFileChoose, JFileChooser, JTable, JTextArea。
.
JButton、JCheckBox和JRadioButton
JButton的构造函数有5个,其中有:
JButton(String text, Icon icon)
JCheckBox的构造函数有8个,其中有:
JCheckBox(String text)
JRadioButton的构造函数有8个,其中有:
Font类
用法:
Font font1 = new Font(“SansSerif”, Font.BOLD, 16); Font font2 = new Font(“Serif”, Font.BOLD+Font.ITALIC, 20);