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个⽂本框,⼀个标签。
Java17第十四章2-界面设计swing

JPopupMenu:弹出式菜单组件
安卓越科技(北京)有限公司
18
import java.awt.Color; import javax.swing.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class PopupMenuTest { static JPopupMenu popup=null; public static void main(String[] args) { JFrame frame = new JFrame(); frame.setBounds(200,300,200, 300); frame.setTitle("我的第一个小板凳"); //设置不允许调整窗口的大小 frame.setResizable(false); frame.setBackground(Color.ORANGE); popup = new JPopupMenu(); popup.add("徐明华"); popup.add("张燕君"); popup.add("徐诗佳"); popup.add("王子昊"); popup.setName("右击菜单"); frame.add(popup);//在窗体上加右击菜单 frame.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON3){ popup.show(e.getComponent(), e.getX(), e.getY()); } } });//添加事件监听器 frame.setVisible(true);//显示窗体}}
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程序设计:第八章 Swing图形界面程序设计

原型 public FlowLayout(int align )
描述
FlowLayerout布局时,组件在容器以从左到右,从 上到下的方式排列。 align用于指定行对齐方式, FlowLayout.LEFT表示左 对齐,相应的有右对齐和居中对齐。
java.awt.Container的成员JLabel(2)
JFrame的成员方法
原型
public JFrame( ) public JFrame(String title) public void setDefaultCloseOperation( int operation) public void setSize(int width, int height) public void setVisible(boolean b) public Container getContentPane()
描述 构造一个无标题不可见的框架 构造一个标题为title的框架 设置当关闭框架时的操作,例如operation为 JFrame.EXIT_ON_CLOSE时表示退出程序
设置框架的大小
设置框架是否可见 返回当前框架的内容窗格
7
组件和容器 -JFrame和JLabel(3)
FlowLayout布局的成员方法:
4
组件和容器(3)
一般容器包括: 面板JPanel,滚动窗格JScrollPane,选项卡 窗格JTabbedPane和工具栏JToolBar。
专用容器包括:内部框架(JInternalFrame),分层窗格 (JLayedPane)、根窗格(JRootPane)、玻璃窗格(GlassPane )、内 容窗格(ContentPane)。
描述 构造一个父窗口为owner,标题为title,模式为 modal的对话框。Modal为true表示有模式,为false 表示无模式 设置对话框的大小
Java程序设计教程P3-1-5信息查询界面

相关知识与技术
二、BorderLayout:边界式布局 例如,一个使用BorderLayout布局的容器con,可以使用add方法 将一个组件b添加到中心区域: con.add(b,BorderLayout.CENTER); 或 con.add(BorderLayout.CENTER,b); 添加到某个区域的组件将占据整个区域。每个区域只能放置一个 组件,如果向某个已放置了组件的区域再放置一个组件,那么先 前的组件将被后者替换掉。使用BorderLayout布局的容器最多能 添加5个组件,如果容器中需要加入超过5个组件,就必须使用容 器的嵌套或改用其他的布局策略。
相关知识与技术
一、FlowLayout:流式布局
2、常用函数:
(1)public (2)public
void setAlignment(int align) 设置布局的对齐方式。 void setHgap(int hgap) 设置布 局的水平间隙。
(3)public
void setVgap(int vgap) 设置布 局的垂直间隙。
相关知识与技术 8.4 容器
一、面板
1、Panel类
Panel类是Container(容器)类的子类,通过Panel 类创建的对象称为面板。 Panel型容器的默认布局是FlowLayout型布局。 经常在一个面板中添加若干个组件后,再把面板放 到另一个容器中。
相关知识与技术
二、ScrollPane类
常用方法:
事件:
相关知识与技术 八、表格JTable 表格组件以行和列的形式显示数据,允许对表格中的数 据进行编辑。 构造方法: JTable():创建默认模型表格。 JTable(int a,int b):创建a行b列的默认模型表格。 JTable(Object data[][],Object columnName[]): 创建默认模型表格对象,并且显示由data指定的二 维数组的值,其列名由数组columnName指定。
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)。
使用AWT
Graphics类 Graphics类是所有用来在组件上进行图形绘制时所使 用的图形环境上下文的父类,它提供了对组件进行图形 绘制的一般方法的接口,一个Graphics对象中封装了用来 进行图形绘制时必须得状态信息,包括: 要绘制的组件对象 当前颜色 当前字体 当前逻辑点操作的功能(XOR和Paint) 当前XOR方式的替代颜色 ……
通过图形用户界面(Graphical User Interface,GUI), 用户和程序之间可以方便友好地进行交互。在Java语言中, Java的基础类(Java Foundation Classed,JFC)是开发GUI 的API集,它包括以下几个部分: 抽象窗口工具包(AWT):Java开发用户界面最初的 工具包,是建立JFC的主要基础; 2D API:实现高质量的二维图形; Swing组件:建立在AWT之上,新的、功能更强大的图 形组件包; 可访问API:支持残疾用户的交互; ……
组件容器
一个Java的图形用户界面的最基本组成部分就是组件 (Component),组件是一个可以以图形化的方式显示在 屏幕上并能与用户进行交互的对象,比如Button, Checkbox, Choice, Label, List等。 组件不能独立地显示出来,必须将组件放在特定的对象 中才能显示出来,这就是包含组件的组件——Container (容器)。容器Container是Component的子类,它本身也 是一个组件,具有组件所有的性质。另外,它还具有容纳 其他组件和容器的功能。
组件容器
框架(Frame)
Frame是一个顶级窗口,通常是应用程序的骨架。Frame中的退出按钮 被点击后,将产生一个WindowEvent事件,表示关闭Frame,可以在Frame 中实现WindowListener接口以监听WindowEvent事件。Frame中无法直接 监听键盘事件,但可以往Frame中添加画布、面板凳组件,t包中包含了一个完整的类集以支持GUI程序的 设计,其中的类及相互关系可以用下图来描述: ng.Object 事件类 字体类 Button Checkbox Graphics 颜色类 图象类 菜单类
Component List … Window Frame
布局管理类 Container Panel Applet Dialog
}
public class MyPanelInFrame extends Frame { public MyPanelInFrame(String str) { super(str); addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } public static void main(String args[]) { MyPanelInFrame fr = new MyPanelInFrame("Panel in Frame"); Panel pan = new Panel(); fr.setSize(500,500); fr.setBackground(Color.green); fr.setLayout(null); pan.setSize(200,200); pan.setBackground(Color.yellow); pan.setLocation(100,100); Button b1 = new Button("Help"); Button b2 = new Button("Test"); pan.add(b1); pan.add(b2); fr.add(pan); fr.setVisible(true);
Demo:Dialog
import java.awt.*; public class myFrame extends Frame { public static void main(String args[]) { myFrame fr = new myFrame("Frame Test"); fr.setSize(400,300); fr.setBackground(Color.white); fr.setVisible(true); fr.showDialog(); } public myFrame(String s){super(s);} public void showDialog() { Dialog fd = new Dialog(this, "Dialog Test",true); fd.setSize(100,100); fd.setBackground(Color.red); fd.setVisible(true); } }
使用AWT
Component类 java.awt包中最核心的类就是Component类,它是构成 Java图形用户界面的基础,大部分组件都是由该类派生出 来的。 Component类是一个抽象类,其中定义了组件所具 有的一般功能:基本的绘画支持(paint, repaint, update等)、 字体和颜色等外形控制(setFont, SetForeground等)、大小 和位置控制(SetSize, SetLocation等)、图象处理(实现接口 ImageObserver)以及组件状态控制(SetEnable, isEnable, isVisible, isValid等) ,……。 常见的组件包括:Button, Checkbox, CheckboxGroup, Choice, Label, List, Canvas, TextComponent, Scrollbar等。
使用AWT
事件类:描述各种事件的类,包括AWTEvent类及其子 类、Event类。 字体类:用来表示字体的类,通过它可以在GUI中使用 多种系统支持的字体。 图象类:用来表示与处理图象的类(GIF、JEPG)。 颜色类:封装了各种颜色。 其他类:光标类、各种几何类等 ……
使用AWT
组件及其对等类(peers) java.awt.peer中有全部awt组件的对等对象的集合,每个 对象都提供了机器相关基本的方法,awt中的组件使用这些 方法来实现机器和操作系统无关的GUI。
使用AWT
使用AWT
菜单类 菜单类也是一种组件,只不过菜单类并不是由一般的 Component类派生的,而是从MenuComponent类继承 得到的。
使用AWT
Container类 Container类是由Component类派生出来的一种特殊 类,用来表示各种GUI组件的容器,其主要功能包括: 组件的管理:方法add()可以向其中添加一个组件, remove()删除其中的一个组件,… 布局管理:每个Container类都和一个布局管理器相 联,以确定其中组件的布局。 Container类可以通过 setLayout()方法设置某种布局方式。 常见的Container类有:Frame,Dialog,Panel, Applet等。
面板(Panel)
面板可以处理事件,但象画布一样,一定要先获得输入焦点。
对话框(Dialog)
对话框与Frame相类似,一般用于接收用户的输入数据,实现与用户的交互。它 与一般窗口的区别在于它依赖其他的窗口。对话框分有模式和无模式两种,前者只 让应用程序响应对话框内部事件,后者则可以响应对话框以外的事件,可以通过其 构造方法来设置对话框是否有模式: Dialog( Parent, Title, isModal ) //父窗口,标题,是否有模式
组件容器
列表
按钮
菜单
窗口,对话框 另一个窗口
Container Container
组件容器 Component Container Button List Textfield Checkbox Panel Applet Window Frame Dialog FileDialog
组件容器
AWT使用Container类来定义最基本的组件容器,它有 两个常用的子类:Window类和Panel类。 Window类还有两个子类: 定义对话框,用Dialog子类。Java还提了一个Dialog 的子类——FileDialog,用它生成文件对话框。 定义一般意义的窗口,用Frame类。 Frame可以用其构造方法Fame(String)来生成,其标题由 String参数指定。一个Frame刚被创建后,其初始大小为 (0,0),而且是不可见的,所以为了使Frame显示出来, 必须在程序中显式地设置一下它的大小。
使用AWT
布局管理器类 Java中提供了各种布局管理器类来管理各种组件在容器 中的放置状态,这些类都是实现了LayoutManager接口的。 标准的布局管理器类有: FlowLayout BorderLayout GridLayout CardLayout GridBagLayout 还可以通过实现LayoutManager接口来定义自己的布局 管理器。
组件容器 用户可以从具体的容器中继承来创建自己的 容器,以构造一些个性化的窗口。一般用户通 常要构造一些适合自己需要的对话框,此时, 可以从Dialog中继承。
public class MyFrame extends Frame { public static void main(String args[]) { MyFrame fr = new MyFrame("Frame and FileDialog Test"); fr.setSize(500,500); fr.setBackground(Color.blue); fr.setVisible(true); fr.showDialog(); } public MyFrame(String str) { super(str); addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } public void showDialog() { FileDialog fd = new FileDialog(this, "FileDialog"); fd.setVisible(true); }