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图形用户界面:Swing和JavaFX的简单介绍

Java图形用户界面:Swing和JavaFX的简单介绍在计算机科学领域中,图形用户界面(GUI)是指通过图形、图像和视觉元素来与计算机程序进行交互的界面。
Java作为一种广泛使用的编程语言,提供了多种选择来构建图形用户界面。
其中,Swing和JavaFX是最常用的两种选择。
本文将对这两种Java GUI工具进行简单介绍,并探讨它们的特点和用途。
一、SwingSwing是Java提供的一套GUI工具包,旨在提供一种跨平台的解决方案。
它是在AWT(抽象窗口工具包)的基础上开发的,为开发者提供了一系列可重用的GUI组件,如按钮、文本框、标签等。
Swing的特点之一是其轻量级性能,它不依赖于操作系统的原生GUI组件,而是完全由Java代码实现。
这使得Swing应用程序可以在不同操作系统上以相同的方式运行,而无需进行任何修改。
Swing提供了丰富的组件库,使得开发者可以轻松构建复杂的用户界面。
它还支持可定制的外观和感觉,开发者可以根据自己的需求选择不同的外观主题。
此外,Swing还提供了一些高级组件,如表格、树形结构和滚动面板,使得开发者可以创建更复杂和功能强大的界面。
然而,Swing也有一些缺点。
由于其完全由Java代码实现的特性,Swing应用程序可能在性能方面存在一些问题。
尤其是在处理大量数据或复杂图形时,Swing的性能可能会受到影响。
此外,Swing的外观和感觉可能与操作系统的原生界面存在一些差异,这可能会对用户体验造成一定的影响。
二、JavaFXJavaFX是Java平台上的另一种GUI工具,它提供了更现代化和富有表现力的用户界面。
与Swing不同,JavaFX使用了一种基于场景图的方式来构建界面。
它通过使用FXML(一种基于XML的用户界面描述语言)和CSS(层叠样式表)来分离界面的结构和样式,使得界面的定制变得更加灵活和简单。
JavaFX提供了许多内置的UI组件,如按钮、文本框、标签等,这些组件具有更丰富的视觉效果和交互特性。
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图形用户界面设计

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

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库在Java中,有多个GUI库可供选择,比如Swing、JavaFX等。
选择合适的GUI库是设计美观直观界面的第一步。
Swing是一个成熟的GUI库,提供了丰富的组件和布局管理器,可以满足大部分GUI设计需求。
JavaFX是Java官方推荐的GUI库,它提供了更现代化的界面设计风格和更优秀的性能。
二、使用布局管理器布局管理器是GUI设计中重要的一环,它定义了组件在窗口中的位置和大小。
Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout等。
通过合理选择和组合这些布局管理器,可以实现各种复杂的界面布局。
三、使用合适的图标和图片图标和图片在GUI设计中起着很重要的作用,可以通过它们来提升用户界面的美观性和直观性。
Java提供了处理图标和图片的功能和类库,开发人员可以使用这些功能来加载、处理和显示各种图标和图片。
四、使用合适的颜色和字体颜色和字体也是GUI设计中非常重要的元素,可以用来强调界面的重要信息或者创建特定的视觉效果。
Java提供了各种颜色和字体的类库和功能,可以用来选择合适的颜色和字体样式。
五、增加交互性一个好的用户界面应该具有良好的交互性,能够方便用户进行操作。
Java提供了丰富的事件处理机制和监听器,可以实现交互性功能。
开发人员可以通过监听用户的操作,及时响应并更新界面,实现更好的用户体验。
六、进行界面美化除了以上的基本设计原则,开发人员还可以通过一些额外的技巧来进一步美化用户界面。
比如使用渐变色背景、添加阴影效果、使用动画效果等。
这些技巧可以使界面更加生动、有趣,并提升用户的整体体验。
java试卷

装线 订中国地质大学(武汉)课程考核试卷 教务处制 版本:2013.10试卷类别A □B □使用学期年命题人签字审题人签字审定人签字考生学号考生姓名所在班级考生学号考生姓名所在班一. 名词解释1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
5. 异常异常表示程序运行过程中可能出现的非正常状态,分为运行时异常和一般异常,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
二. 单选1-5:ACAAC 6-10:BDBDC 11-15:DADAD 16-20:DCBAA三. 简答1. String 和StringBuffer的区别JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。
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)。
第九章Java图形用户接口对一个优秀的应用程序来说,良好的图形用户接口是必不可少的。
缺少良好的图形用户接口,将会给用户理解和使用应用程序带来很多不便。
很难想象用户为了学会使用一个应用程序,去记一大堆命令。
Java提供了生成一个良好的图形用户接口所需要的一切基本元件:面板(Panel Button?abe l?画板(Canvases?滚动条(Scrollbar?列表框(List?文本域(TextF ield?文本区(TextArea?9.1 面板面板提?了建立应用程序的空间。
你可以把图形元件(包括其他面板?放在一个面板上。
Applet类提?了一个基本的面板。
9.1.1布局管理Java提?了几种布局:顺序布局(FlowLayout?边界布局(BorderLayout?和网格布局(GridLayout?9.1.1.1顺序布局顺序布局(FlowLayout?是最基本的一种布局,面板的缺省布局就是顺序布局。
顺序布局指的是把图形元件一个接一个地?平地放在面板上。
下面是一个顺序布局的例子:import java.awt.*;import java.applet.Applet;public class myButtons extends Applet{Button button1,button2,button3;public void init(){button1=new Button("确定");button2=new Button("打开");button3=new Button("关闭");add(button1);add(button2);add(button3);}}该程序生成的布局如下:图9.19.1.1.2边界布局边界布局包括五个区:北区、南区、东区、西区和中区。
这几个区在面板上的分布规律是“上北下南,左西右东”。
下面是一个边界布局的例子:import java.awt.*;import java.applet.Applet;public class buttonDir extends Applet{Button buttonN,buttonS,buttonW,buttonE,buttonC;public void init(){setLayout(new BorderLayout());buttonN=new Button("水");buttonS=new Button("火");buttonE=new Button("木");buttonW=new Button("金");buttonC=new Button("土");add("North",buttonN);add("South",buttonS);add("East",buttonE);add("West",buttonW);add("Center",buttonC);}}下面是该程序运行的结果:图9.29.1.1.3网格布局网格布局把面板分成一个个的网格,你可以给出网格的行数和列数。
下面是一个网格布局的例子:import java.awt.*;import java.applet.Applet;public class buttonGrid extends Applet{Button button1,button2,button3,button4,button5,button6,button 7,button8;public void init(){setLayout(newGridLayout(4,2));button1=new Button("乾");button2=new Button("坤");button3=new Button("艮");button4=new Button("震");button5=new Button("坎");button6=new Button("离");button7=new Button("巽");button8=new Button("兑");add(button1);add(button2);add(button3);add(button4);add(button5);add(button6);add(button7);add(button8);}}下面是该程序运行的结果:图9.39.2按钮9.2.1按钮事件用户点一下按钮,就会有一个按钮事件发生。
你可以通过重载一个applet的act ion成员函数来捕捉按钮事件。
public boolean action(Event e,Object o){if(e.target instanceof Button){System.out.println((string) o);}else{System.out.println("Non-button event");}return true;}9.2.2按钮类型Java提?了标准的按压式按钮,同时也提?了选择式按钮和标记式按钮。
9.2.2.1选择式按钮选择式按钮提?了从几个选项中选一个选项的功能。
下面是从几个市中选一个市的例子,市名放在选择式按钮中:CityChooser=new Choice();CityChooser.addItem("北京");CityChooser.addItem("上海");CityChooser.addItem("天津");add(CityChooser);图9.49.2.2.2标记式按钮标记式按钮的状态作为标记框事件的对象参数返回。
下面是一个标记式按钮的例子:Checkbox fillStyleButton;fillStyleButton=new Checkbox("Solid");public boolean action(Event e,Object arg){if(e.target instanceof Checkbox){System.out.println("Checkbox:"+ arg);}Return true;}图9.59.2.2.3按键式按钮按键式按钮是一组按钮,用户可以选中其中一个,同时这一组中的其他按钮将被关闭。
下面是一个按键式按钮的例子:public class CheckBox extends Applet{CheckboxGroup cbg;public void init(){cbg=new CheckboxGroup();add(new Checkbox("one",cbg,true));add(new Checkbox("two",cbg,false));add(new Checkbox("three",cbg,false));}}图9.69.2.3自包含按钮Java语言的面向对象特性使我们能够创建完全自包含的按钮。
在自包含按钮里,你可以在?展按钮类里建立事件控制函数。
下面是一个自包含按钮的例子:import java.awt.*;import java.applet.Applet;class okButton extends Button{public okButton(){setLabel("Ok");}public boolean action(Event e,Object arg){System.out.println("OKButton");return true;}}public class buttontest extends Applet{okButton myOkButton;public void init(){myOkButton=new okButton();add(myOkButton);}}图9.79.3标签标签是一种放到面板上的静止的正文。
下面是一个标?的例子:importjava.awt.*;import java.applet.Applet;public class label extends Applet{public void init(){setLayout(new FlowLayout(FlowLayout.CENTER,10,10)); Label label1=new Label("你好!");Label label2=new Label("另一个标签");add(label1);add(label2);}}下面是运行结果:图9.89.4列表框列表框使用户易于操作大量的选项。
创建列表框的方法和Choicebutton有?相似。
列表框的所有条目都是可见的,如果选项很多,超出了列表框可见区的范围,则列表框的旁边将会有一个滚动条。
首先,创建列表框:Listl=new List(4,fals e);这个成员函数创建了一个显示4行的列表框。
第二个参数“false"表示这个列表框是单选的,如果是“true",则表示是多选的。
下面增加列表框的选项:l.addItem("北京大学");l.addItem("清华大学");l.addItem("吉林大学");l.addItem("复旦大学");l.addItem("南开大学");l.addItem("天津大学");l.addItem("南京大学");add(l);图9.99.4.1在列表框中进行选择可以用成员函数getSelectedItem()或getSelectedItems()来接收在列表框中被选的选项。
在单选列表框里,“双击”一个选项就可以触发一个可被action()成员函数捕捉到的事件。
public boolean action(Event e,Object arg){...if(e.target instanceof List){System.out.println("Listentry:"+arg);}...}9.4.2多选列表框对于多选列表框,要使你的选择产生作用,需要使用其他的外部事件。