javaGUI编程汇总
Java语言程序设计-GUI编程
7.1 概述
Ø Swing
Swing是Sun在AWT基础之上构建的一套新的Java图形界面库,其在JDK 1.2中 首次发布。
Swing组件没有对等体,不再依赖操作系统的本地代码而是自己负责绘制组 件的外观 ,因此也被称为轻量级(Light-weight)组件。
1. 丰富的组件类型和特性 2. 优秀的编程模型 3. 美观易用
7.6 文本组件
Ø 密码框:JPasswordField
JPasswordField类继承自JTextField,是一种特殊的文本框,在该种文本框中 输入的所有字符均会以某个替代字符(称为回显字符)显示。 JPasswordField的几个构造方法的形式与JTextField类似。
3. (其他)组件:如标签、按钮、进度条、树、表等。
7.2 Swing库的架构
Ø 组件类的继承关系
根据容器所在的层级,可以将容器分为两类:
1. 顶层容器:指GUI程序中位于“最上层”的容器,其不能被包含到别的容器 中,如窗口、对话框等。
2. 子容器:位于顶层容器之下的容器,如面板、内部窗口等。
需要注意,一些组件在AWT和Swing中都受支持(如按钮、窗口等),为区 别于AWT,Swing中组件类的类名均以字母J开头。
2. 容器(Container):指那些能够“容纳”组件的特殊组件,如窗口、面板、 对话框等。容器可以嵌套,即容器中又包含容器。
根据组件的功能和特性,可以将Swing中的组件分为3种: 1. 文本组件:与文字相关的组件,如文本框、密码框、文本区等。
2. 菜单组件:与菜单相关的组件,如菜单栏、菜单项、弹出菜单等。
Ø JComponent类
JComponent类属于Swing库,它是Swing中除顶层容器外的所有组件的根类。 对于继承自JComponent的组件,必须将其置于一个根为顶层容器(如JFrame) 的包含层次结构中。
Java的GUI编程
Java的GUI编程一、介绍Java是一种广泛使用的编程语言,具有跨平台性和面向对象的特点。
GUI (Graphical User Interface)编程是指通过图形化界面与用户进行交互的编程方式。
Java提供了丰富的GUI编程工具和库,使开发人员能够轻松地创建各种图形化界面应用程序。
二、SwingSwing是Java中最常用的GUI编程框架之一。
它提供了一套丰富的组件,如按钮、文本框、标签等,以及容器组件,如面板、框架等。
开发人员可以使用Swing 来构建各种复杂的图形化界面应用程序。
在Swing中,每个组件都有自己的属性和方法,可以通过设置和调用这些属性和方法来实现不同的功能。
例如,可以通过设置按钮的文本、颜色和事件处理程序来创建一个可点击的按钮。
Swing还支持布局管理器,用于自动调整组件的位置和大小。
常用的布局管理器有FlowLayout、BorderLayout和GridLayout等。
开发人员可以根据需求选择合适的布局管理器来实现自己想要的界面布局。
三、JavaFXJavaFX是Java中另一个重要的GUI编程框架。
与Swing相比,JavaFX提供了更加现代化和强大的功能。
它使用了一种基于XML的标记语言FXML来描述界面,使得界面设计和开发更加灵活和易于维护。
JavaFX提供了丰富的内置组件,并且支持自定义组件的开发。
它还支持动画效果、图形渲染和多媒体处理等高级功能。
开发人员可以利用这些功能创建出更加精美和交互性强的界面应用程序。
JavaFX还提供了场景图(Scene Graph)的概念,用于管理界面上的所有组件和布局。
开发人员可以通过添加和删除组件、设置组件的属性和监听用户事件来实现界面的交互和动态更新。
四、AWTAWT(Abstract Window Toolkit)是Java最早的GUI编程框架,它提供了一套与操作系统窗口系统交互的接口。
AWT的组件和布局管理器是基于操作系统的原生界面,因此在不同的操作系统上可能会有不同的外观和行为。
javagui知识点总结
javagui知识点总结一、Swing GUI组件Swing是Java中用于创建GUI的一套组件库,它提供了丰富的GUI组件,包括按钮、文本框、标签、列表框、表格等等。
这些组件可以通过代码进行创建、配置和操作,从而构建出丰富多彩的用户界面。
Swing组件还支持丰富的外观和行为定制,可以通过设置各种属性和监听器来满足不同的需求。
1.1 按钮(Button)按钮是Swing中最基本的GUI组件之一,它通常用于触发某个操作或事件。
在Swing中,按钮可以通过JButton类来创建,可以设置按钮的文本、图标、颜色、大小、位置等属性,并为按钮添加各种监听器来处理用户的点击事件。
1.2 文本框(TextField)文本框用于接受用户的输入,可以通过JTextField类来创建,可以设置文本框的默认文本、颜色、大小、位置等属性,并通过添加文本变化监听器来实时监测用户的输入。
1.3 标签(Label)标签用于显示静态文本信息,可以通过JLabel类来创建,可以设置标签的文本、字体、颜色、大小、位置等属性,还可以通过添加鼠标事件监听器来实现交互式标签。
1.4 列表框(ListBox)列表框用于显示一组选项供用户选择,可以通过JList类来创建,可以设置列表框的选项、颜色、大小、位置等属性,并为列表框添加选择事件监听器来处理用户的选项选择。
1.5 表格(Table)表格用于显示和编辑二维数据,可以通过JTable类来创建,可以设置表格的数据模型、列模型、传输器、颜色、大小、位置等属性,并为表格添加各种监听器来处理表格的编辑和选择事件。
二、事件处理在Java GUI编程中,事件处理是至关重要的一部分,它用于实现用户界面和用户交互的逻辑。
Swing组件提供了丰富的事件类型,包括鼠标事件、键盘事件、焦点事件、窗口事件等等,开发人员可以通过添加事件监听器来处理这些事件,从而实现用户交互的各种效果。
2.1 事件监听器(EventListener)事件监听器是一种特殊的接口,用于监听和处理特定类型的事件。
java的gui编程示例
java的gui编程⽰例对话框package com.sly.uploadfile.base;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.Serializable;/*** Created by admin on 2020/6/27.*/public class MainFrame extends JFrame implements ActionListener, Serializable {public static void main(String[] args) {MainFrame mainFrame = new MainFrame();}private static final long serialVersionUID = 6126254268960773408L;private TextArea textArea;private JButton btnOK;private JButton btnCancel;private JMenuItem miOpen;private JMenuItem miExit;public MainFrame() {initFrame();this.setVisible(true);}/*** 初始化布局*/private void initFrame() {// 标题this.setTitle("主窗⼝");// 边界this.setBounds(100, 100, 850, 700);// 绝对布局this.setLayout(null);Font font = new Font("微软雅⿊", Font.PLAIN, 15);// 将⽂本域添加到滚动⾯板中textArea = new TextArea();textArea.setFont(font);// 滚动⾯板JScrollPane pane = new JScrollPane(textArea);pane.setBounds(0, 0, 800, 500);this.add(pane);btnOK = new JButton("保存");btnOK.setBounds(600, 510, 100, 50);btnOK.setFont(font);btnOK.addActionListener(this);this.add(btnOK);btnCancel = new JButton("取消");btnCancel.setBounds(710, 510, 100, 50);btnCancel.setFont(font);btnCancel.addActionListener(this);this.add(btnCancel);// 添加窗⼝事件处理程序,使⽤适配器this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(-1);}});// 添加菜单栏JMenuBar menuBar = new JMenuBar();// 添加菜单JMenu menu = new JMenu("⽂件");miOpen = new JMenuItem("打开");miOpen.addActionListener(this);// 添加菜单项menu.add(miOpen);//分隔符menu.addSeparator();miExit = new JMenuItem("推出");miExit.addActionListener(this);menu.add(miExit);menuBar.add(menu);this.setJMenuBar(menuBar);}public void actionPerformed(ActionEvent e) {Object es = e.getSource();// 保存⽂件if (es == btnOK) {try {// 打开保存对话框,定位保存⽂件的位置FileDialog d = new FileDialog(this, "保存", FileDialog.SAVE);d.setVisible(true);File f = new File(d.getDirectory(), d.getFile());String str = textArea.getText();FileWriter writer = new FileWriter(f);writer.write(str);writer.close();textArea.setText(null);} catch (Exception e1) {e1.printStackTrace();}} else if (es == btnCancel) {// 取消this.dispose();} else if (es == miOpen) {// 是否是菜单项FileDialog d = new FileDialog(this, "打开", FileDialog.LOAD);d.setVisible(true);String dir = d.getDirectory();String f = d.getFile();if (dir != null && f != null) {try {textArea.setText(null);FileReader reader = new FileReader(new File(dir, f));char[] buffer = new char[1024];int len = -1;while ((len = reader.read(buffer)) != -1) {textArea.setText(textArea.getText() + new String(buffer, 0, len)); }reader.close();} catch (Exception e1) {e1.printStackTrace();}}} else if (es == miExit) {// 退出System.exit(-1);}}}。
Java语言中的GUI总结
Java语⾔中的GUI总结⼀、GUI 1、GUI的概念 GUI(Graphical User Interface)即图形⽤户界⾯,它能够使应⽤程序看上去更加友好。
2、AWT、Swing以及SWT AWT(Abstract Windows Toolkit)是Java语⾔中最原始的GUI⼯具包,相关API位于java.awt包中。
AWT是⼀个⾮常有限的GUI⼯具包,⽐如树、表格等都不⽀持; 然⽽AWT却⽆法实现。
AWT运⾏时,每个组件都要依赖于当前平台的GUI对等体(peer)控件,因此,AWT GUI 的外观和⾏为就会依赖当前平台。
3、java.awt包 java.awt包是Java内置的包,属于Java基础类库(JFC)的⼀部分,其中包括以下内容; 便于⽤户输⼊的⼀组丰富的界⾯组件; 将组件放置在适当位置的⼏种布局管理器; 事件处理模型; 图形和图像⼯具等等。
4、常⽤的基本Swing组件 在Swing编程中,有⼀些经常要使⽤到的组件,其中包括: JFrame(窗体,框架)、JPanel(⾯板,容器)、JButton(按钮)、JLabel(标签)、JTextField(⽂本框)、JTextArea(⽂本域)。
5、创建GUI的步骤总结 分析GUI中需要使⽤的组件; 将GUI分成⼏个部分,每个部分使⽤JPanel布局。
每个JPanel可以根据情况使⽤不同的布局管理器; 将多个JPanel布局到⼀个JFrame上。
⼆、Swing事件监听快速⼊门 1、事件处理 对于采⽤了图形⽤户界⾯的程序来说,事件控制是⾮常重要的; 到⽬前为⽌,我们编写的图形⽤户界⾯程序都仅仅只是完成了界⾯,⽽没有任何实际的功能,要实现相应的功能,必须进⾏事件处理; ⽤户与GUI组件进⾏交互就会发⽣事件,如:按下⼀个按钮、⽤键盘输⼊⼀个字符、点击⿏标等等; 当前我们要关注的并不是“事件是如何产⽣的”,⽽是讨论当发⽣事件后,我们应当“如何处理之”。
JavaGui编程
类建好后再写包,点击第 示。
通过刚才分析 ,我们知道要实现此功能跟按钮的点击有关。
事件:
事件: 具体发生了什么事情 事件源:发生事件的具体的组件 监听器:
1 感知到发生了什么事情 2 作出反映
示例: 我打了小张两巴掌,他就哭了。
小张 事件 鼠 标 的 点 击 次 数 java.awt.event.MouseEvent[MOUSE_CLICKED,(34,25),absolute(857,446),button=1,modifiers=Butt button0
从上面的内容分析应该有个字段在存储点击次数。
改名字, 或者按 F2
键 盘 事 件 监 听 器 实现模拟聊天功能,关键点是获取到回车键的值。
窗 口 事 件 监 听 器
菜单--》Menu 记事本
类建好后再写包,点击第1个提
点击按钮,让文本框显示 1
整个操作是在窗口显示之后进行的,
1、 获取到按钮上的文本内容。
按扭上有方法可以实现
2、 把获取到的内容显示到文本框上去。 文本框有方法可以实现
1、 获取到按钮上的文本内容。
按扭上有方法可以实现
回 顾 1、了解最常用的组件 Component Button 容器组件: Panel: 最简单的容器 Frame :带有边框和标题的窗口 2、布局 FlowLayout BorderLayout GridLayout 3、 a 使用java 提供的简单的布局管理器 b 多种布局组合使用 c 清空自带的布局管理器
2、 把获取到的内容显示到文本框上去。 文本框有方法可以实现
以上两步都非常简单,问题是这段程序写哪里。
java_11GUI编程
窗体Frame
public void dispose()
– //可以撤销当前窗口,释放窗口所使用的资源
Frame是Window的子类,凡是Window子类的对 象都引发WindowEvent事件。 当一个Frame窗口被激活、撤销激活、打开、关 闭、最小化或撤销最小化,就会引发窗口事件, 获得监视器的方法如下: public void addWindowListener(WindowListener)
BorderLayout(边框布局)
构造函数
BorderLayout();
//各组件纵、横间距为0 BorderLayout(int hgap, int vgap); //hgap横间距,vgap纵间距,象素为单位
add (组件,位置);
位置可取值:
BorderLayout.NORTH[WEST,CENTER,EAST,SOUTH]
容器(Container )
AWT中的容器
Window Frame(重点掌握) Dialog Panel Applet
Frame 窗体
介绍:Frame是一个带有边框、标题栏、菜单的图形 容器。 构造方法:
Frame() 创建一个空白框架 Frame(String s) 创建一个使用 s 做标题的框架。 Frame类常用的方法: public void setIconImage(Image image):设置窗体显示的图 标 public void setMenuBar(MenuBar menubar):加载窗体使 用的菜单对象 public void setLayout(LayoutManager manager):设置窗体 使用的布局管理器
第7 章 Java 中的GUI 编程
第7章 Java中的GUI编程图形用户界面(Graphical User Interface,GUI)使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发送指令,启动操作,并将系统运行的结果同样以图形方式显示给用户。
图形用户界面操作简单,省去了字符界面用户必须记忆各种命令的麻烦,深受广大用户的喜爱和欢迎。
所以学习设计和开发图形用户界面,是应用软件开发人员的必修课。
本章主要介绍Swing和AWT中基本组件的用法,如何创建简单的用户界面,包括布局管理、用户事件,以及如何创建复杂的用户界面等。
●图形用户界面概述●创建简单的用户界面●布局管理●用户界面●创建复杂的用户界面7.1 图形用户界面概述GUI由若干GUI组件(Component)组成,GUI组件是可见的对象,用户可以通过鼠标或键盘对它进行操作,通过对不同事件的响应,来完成组件与用户之间或组件与组件之间的交互。
用户界面设计在程序设计中有较大的比重,在较为复杂的Java应用程序中,用户界面设计是不可缺少的。
Java-AWT——抽象窗口工具箱就是专门是了解和掌握UI的各主要构件以及布局管理器。
Java基类(Java Foundation Classes,JFC)是关于GUI组件和服务的完整集合,它大大简化了健壮的Java应用程序的开发和布署。
JFC作为Java2SDK的一个组成部分,主要由5个API构成:AWT、Swing、Java 2D、Drag and Drop、Accessibility,如图7.1所示。
AWT组件库为各类Java应用程序提供了多种GUI工具。
Swing提供了一整套用Java语言编写的GUI组件,以保证可移植性。
Java 2D是一种图形API,它为Java应用程序提供了高级的二维(2D)图形图像处理类的集合。
同时,该API还包含了一套扩展字体集合。
Drag and Drop技术提供了Java和本地应用程序之间的互用性,用来在Java应用程序和不支持Java技术的应用程序之间交换数据。
Java中的GUI编程
集成Web技术:Java GUI编程将与Web技术更加紧密地集成,使得开发者能够更加方便地 开发出功能丰富、界面美观的Web应用程序。
增强安全性:Java GUI编程将更加注重安全性,提供更多的安全特性和工具,帮助开发者 构建更加安全的应用程序。
AWT组件使用示例
组件类型:按钮、标
签、文本框、选择框 等
组件属性:颜色、字 体、大小、位置等
组件事件:点击事件
、键盘事件、鼠标事 件等
组件布局:流式布局 、网格布局、边界布 局等
JavaFX组件库
JavaFX组件库简介
标题
JavaFX组件库是Java中用于构建GUI界面的工具包
标题
提供了丰富的UI控件,如按钮、文本框、列表等
BorderPane:分为 五个区域,可以设置 子节点的位置和比例 ,适合布局复杂的界
面
GridPane:按照网格 布局,可以设置行、列 、跨度等属性,适合布 局规则、整齐的界面
06
HBox和VBox:分别 按照水平或垂直方向 排列子节点,可以设 置对齐方式、间距等
07
JavaFX布局管理器的 使用方法:通过设置组 件的布局管理器属性, 可以轻松实现界面布局
。
JavaFX事件处理机制
事件源: JavaFX组件库 中的UI组件
事件类型:包 括鼠标事件、 键盘事件、触 摸事件等
事件处理:通 过注册监听器 来实现事件处 理
监听器类型: 包括事件监听 器、动作监听 器、选择监听 器等
事件传播:事 件从源组件传 播到父组件, 直到到达根节 点
Java的GUI编程
JAVA 础
训—Java GUI编 Java GUI编
FlowLayout
左上角 流布局是面板的默认布局管理器
依次排序的组件
右下角 垂直或水平间距 容器
JAVA 础
训—Java GUI编 Java GUI编
BorderLayout
North 上边的组件
左 边 West 的 组 容器 件 下边的组件 South CENTER
JAVA 础
训—Java GUI编 Java GUI编
javax.swing包中控件类的体系结构
Object Component Container Window Frame JFrame Dialog JDialog JToggleButton JCheckBox JRadioButton JMenuItem JMenu JButton JComponent JText JComboBox JLabel JList JMenuBar JOptionPane JPanel JScrollBar AbstractButton JTextArea JTextField
JAVA 础
训—Java GUI编 Java GUI编
Javax.swing.JPanel的常用方法
函数原型
JPanel()
说
明
创建默认布局(FlowLayout) 的面板 以指定的布局管理器创建面板 以指定布局管理器设置面板的 布局 往面板内添加控件 设置面板的背景色
JPanel(LayoutManager layout) void setLayout(LayoutManager layout) Component add(Component comp) Void setBackgrGUI编 Java GUI编
Java09(GUI编程)
BorderLayout
委托模型的优缺点
事件处理和产生事件的对象分离,更加灵活, 符合OOP的一个设计准则,分离。 事件处理和时间对象可以有多对多的关系, 可以重用事件处理对象。 程序结构复杂。 由1.0模型向1.1模型转换比较复杂。
Q&A
本章结束 谢谢大家
确定布局管理器
缺省的布局管理器
Window 、Frame、Dialog —— BorderLayout Panel 、Applet —— FlowLayout:
选择布局管理器的方法
建立布局管理器类的对象 利用容器的 setLayout 为容器指定布局(即指定一个布局管理 器的对象)
例:将myFrame布局设定为FlowLayout类型 myFrame.setLayout(new FlowLayout());
JAVA GUI编程简介
通过图形用户界面GUI (graphics user interface ),用户和程序之间可以方便地进行交 互。在Java语言中提供了专门的类库来生成各种标 准图形界面元素和各种处理图形界面的各种事件, 以实现图形用户界面的设计
目前在JAVA中实现图形用户界面主要有两种技术: AWT和Swing
允许用户选择自己喜欢的界面风格提供了多种与用户交互的手段为用户提供高质量的2d图形图像和文本的api支持对象的拖放swing组件全部是由纯java编写的功能强大如按钮和标签可以显示图像或图片组件不一定是长方形swing使用的包
Java GUI可视化编程
模块十建立GUIs模块十建立GUIs (1)1.抽象窗口工具包(AWT) (2)2.第三节建立图形用户界面 (3)2.1. 容器 (3)2.2. 定位组件 (3)2.3. 组件大小 (3)3.框架(Frames) (3)4. Panels (4)5.容器布局(Container Layout) (5)5.1. 布局管理器 (5)5.2. FlowLayout的一个简单例子 (6)6.布局管理器 (7)6.1. FlowLayout (7)6.2. BorderLayout (8)6.3. GridLayout (10)6.4. CardLayout (11)6.5. GridBag (13)7.创建面板及复杂布局 (13)8.练习:建立Java GUIs (15)8.1. 创建计算器GUI (15)8.2. 创建帐目GUI (15)8.3. 检查进步情况 (15)本模块为你介绍:使用AWT (抽象视窗工具包----建立GUIs的类包) 建立图形用户界面及其布局。
完成本模块学习时,你应该能够:-描述AWT包及其组件-描述Container、Component及Layout Manager等术语,以及它们如何在一起建立GUI-使用Layout Manager-使用Flow、Border、Gird及Card布局管理器来获得期望的动态布局-增加组件到Container-正确运用Frame及Panel容器-描述如何使用嵌套容器来完成复杂的布局-在Java软件程序中,标识如下内容:-容器-相关布局管理器-所有组件的布局层次1.抽象窗口工具包(AWT)AWT提供Java 小应用程序(applets)及应用程序中使用的基本GUI组件。
AWT为应用提供独立于机器的接口,这将保证基于AWT的软件具有跨平台可移植的能力。
在学AWT之前,简单回顾一下对象层次结构:超类是可以扩展的,它们的属性是可继承的。
而且,类可以是抽象的,也就是说,它们是子类的模板,子类可以具体实现它们。
Java中的GUI编程库介绍
Java中的GUI编程库介绍GUI(Graphical User Interface)是指图形用户界面,是一种人机交互界面的显示方式。
Java作为一门多用途编程语言,具备强大的GUI编程能力。
在Java中,有多个GUI编程库可供选择,本文将介绍其中几个常用的GUI编程库。
一、SwingSwing是Java中最基础、最常用的GUI编程库之一。
它基于Java的AWT(Abstract Window Toolkit)进行扩展,提供了更丰富的组件和更强的可定制性。
Swing提供了一套完整的GUI组件,如按钮、标签、文本框、下拉菜单等,开发者可以通过使用这些组件来构建可视化界面。
同时,Swing还提供了丰富的布局管理器,可帮助开发者轻松地实现界面的排版和布局。
Swing是Java官方推荐的GUI编程库,广泛应用于各种Java应用程序的开发。
二、JavaFXJavaFX是Java中另一个重要的GUI编程库,它由Java Swing之后发布的Java SE 7版本中引入。
相比于Swing,JavaFX提供了更加现代化和丰富多样的GUI组件。
它支持丰富的视觉效果和动画效果,可以通过CSS来实现样式化界面。
JavaFX还提供了FXML语言,可以使用FXML来描述界面结构,将界面与业务逻辑分离,使得UI设计人员和开发人员可以并行工作。
JavaFX在Java 11之后成为Java的一部分,它为Java开发者提供了全面的GUI解决方案。
三、SWTSWT(Standard Widget Toolkit)是一套轻量级的GUI工具包,由IBM开发并开源,用于构建跨平台的GUI应用程序。
与Swing和JavaFX不同,SWT直接使用底层操作系统的本地界面库,因此具有更好的性能和更原生的视觉效果。
SWT提供了一整套跨平台的GUI组件,类似于Swing的组件。
但与Swing相比,SWT的学习曲线较陡峭,使用者需要了解底层操作系统的GUI编程概念。
详解JavaGUI编程的基本原理和实际应用
详解JavaGUI编程的基本原理和实际应用JavaGUI编程是Java语言中的一种重要编程方式,主要用于创建图形用户界面(Graphical User Interface,简称GUI)应用程序。
本文详细介绍JavaGUI编程的基本原理和实际应用。
第一章:JavaGUI编程的基本原理在Java中,GUI编程是通过Java Swing框架来实现的。
Swing是Java提供的一套GUI类库,提供了丰富的组件和布局管理器,用于构建灵活、可定制性高的用户界面。
1.1 组件和容器在Java中,界面元素被称为组件(Component),例如按钮、文本框等。
组件可以包含其他组件,形成一个层次结构,其中容器(Container)是一种特殊的组件,用于容纳其他组件。
1.2 事件驱动模型JavaGUI编程采用事件驱动模型,即通过捕捉和处理用户的操作产生的事件来响应用户的交互。
每个组件都可以注册监听器(Listener),用于监听特定类型的事件,并定义相应的处理方法。
1.3 布局管理器布局管理器(Layout Manager)用于管理组件在容器中的排列方式。
Java提供了多种布局管理器,包括流式布局(FlowLayout)、边界布局(BorderLayout)、网格布局(GridLayout)等,开发人员可以根据实际需求选择合适的布局管理器。
第二章:JavaGUI编程的实际应用JavaGUI编程在日常开发中有广泛的应用,例如窗口应用程序、表单输入界面、图形编辑工具等。
下面以一个简单的登录窗口程序为例,介绍JavaGUI编程的实际应用。
2.1 创建窗口通过实例化JFrame类,可以创建一个窗口对象。
可以设置窗口的标题、大小、位置等属性,并添加各种组件。
2.2 添加组件使用容器类(如JPanel、JPanel)来创建一个容器,并将各种组件添加到容器中。
可以通过setLayout方法设置容器的布局管理器,再通过add方法将组件添加到容器中。
java GUI编程
事件MouseEvent对应的接口MouseListener
事件TextEvent对应的接口TextListener
事件WindowEvent对应的接口WindowListener
//添加一个Window事件,WindowAdapter类继承了WindowListener接口,使用到java中的内部类,
或者label2=new JLabel();
label2.setText("文字内容");
4.JFrame和JPanel容器添加控件的方法:this.add(对象);或者jp1.add(控件对象);
5.布局方式设置
this.setLayout(new GridLayout());
BorderLayout()或者FlowLayout();
填充圆:fillOval(int x,int y,int width,int height);
画图片:drawImage(Image img,int x,int y……);
画字符串:drawString(String str,int x,int y);
设置画笔的字体:setFont(Font font);
内部类在事件处理中是用的非常多的
this.addWindowListener(new WindowAdapter({
public void windowClosing(WindowEvent e){
System.exit(0); //关闭时退出功能
}
})
//给Button设置事件监听button在此时代表实例变量
画矩形边框:drawRect(int x,int y,int width,int height);
javaGUI编程
javaGUI编程⼀.词汇理解⼆.图三.部分组件JTextField 单⾏⽂本框JTextArea 多⾏⽂本域JLabel 标签JComboBox 下拉列表JCheckBox 复选JRadioButton 单选JButton 按钮四.java.Awt包1.Awt包是java内置的包,其中包括以下内容: ①便于⽤户输⼊的⼀组丰富的界⾯组件; ②将组件放置在适当位置的⼏种布局管理器; ③事件处理模型; ④图形和图像⼯具等等。
要使⽤该包中的类,则必须显式地声明如下语句: import java.awt.*;Swing与本地图形库没有太⼤的关系,也就是说不管什么操作系统只要使⽤了Swing作为界⾯,那么显⽰都是⼀样的,⼀句话Swing具有跨平台性。
⽽且能绘制⽐AWT更丰富的图形界⾯。
AWT图形界⾯使⽤了本地的图形界⾯,绘制出的界⾯不具有跨平台性,操作系统不同绘制出来的界⾯可能不同。
2.Swing包中控件类的体系结构五.Swing简介和java.Swing包1.Swing是在AWT基础上发展⽽来的轻量级组件,与AWT相⽐不但改进了⽤户界⾯,⽽且所需的系统资源更少;Swing是纯java组件,使所有的应⽤程序在不同的平台上运⾏时具有本机外观和相同的⾏为。
java.Swing包包含了⼀系列Swing控件,如果要使⽤该包中的类,则必须显式地声明如下语句: import javax.swing.*;2.java.Swing包中控件类的体系结构六.组件类与容器类组件(Component):基本图形元素,如按钮,⽂本框,⽂本域,多选按钮,单选按钮等。
容器(Container):可以容纳组件的区域,在容器上可以添加别的组件。
如:Frame,Window等。
注意:容器中可以容纳组件,也可以容纳⽐它“容量级别⼩”的容器。
七.AWT容器1.有两种类型的容器:Window和Panel2.Window与Panel的区别 Window是能够独⽴存放的容器;Panel不能单独存在,必须放⼊Window或其⼦类中3.Window的⼦类 Frame:最常⽤的窗体 Dialog:对话框⼋.Swing GUI框架九.顶级容器JFrame:⽤于框架窗⼝的类,此窗⼝带有边框、标题、⽤于关闭和最⼩化窗⼝的图标等。
Java的GUI编程技术研究
Java的GUI编程技术研究介绍•Java的GUI编程技术在当今的软件开发中占据重要地位。
•本文将探讨Java的GUI编程技术,包括Swing和JavaFX。
•我们将深入研究如何使用这些技术创建各种图形用户界面。
什么是GUI编程?GUI的定义•GUI(图形用户界面)是指通过图形和图像来与用户进行交互的计算机程序界面。
•它提供了一种直观的方式,让用户通过鼠标点击、拖放和其他操作来执行各种任务。
GUI编程的重要性•GUI编程是现代软件开发中不可或缺的一部分。
•它使软件更易于使用,增加了用户体验和用户满意度。
•通过GUI,用户可以直观地了解和操作软件,而无需事先了解底层代码。
Java的GUI编程技术SwingSwing的定义•Swing是Java中的GUI工具包,旨在提供强大和灵活的GUI组件。
•它提供了一系列的组件,如按钮、文本框、标签等,可以用来构建各种类型的应用程序界面。
优点•Swing提供了丰富的组件库,可以满足几乎所有的GUI需求。
•它具有平台无关性,可以在不同的操作系统上运行。
•Swing支持自定义主题和外观,使得应用程序的界面可以与操作系统保持一致或自定义风格。
缺点•Swing的性能相对较低,特别是在处理大量数据和复杂绘图时。
•它的外观和风格相对老旧,与现代操作系统的风格差距较大。
JavaFXJavaFX的定义•JavaFX是Java平台上的GUI工具包,旨在取代Swing。
•它提供了更强大、更现代化的GUI编程功能,以及优化的性能和更好的可视化效果。
优点•JavaFX具有良好的性能,可以处理大量数据和复杂的图形操作。
•它支持丰富的特效和动画效果,可以创建更具视觉冲击力的应用程序界面。
•JavaFX提供了现代化的外观和风格,与现代操作系统的界面风格更为接近。
缺点•JavaFX的学习曲线相对较陡峭,相比Swing需要更多的学习和掌握。
•由于JavaFX相对较新,可能存在一些稳定性和兼容性问题。
Java-GUI编程
Java-GUI编程GUI全称是Graphical User Interface,即图形⽤户界⾯。
顾名思义,就是应⽤程序提供给⽤户操作的图形界⾯,包括窗⼝、菜单、按钮、⼯具栏和其他各种图形界⾯元素。
⽬前,图形⽤户界⾯已经成为⼀种趋势,⼏乎所有的程序设计语⾔都提供了GUI设计功能。
Java中针对GUI 设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中,简称为AWT和Swing。
AWT是⽤于创建图形⽤户界⾯的⼀个⼯具包,它提供了⼀系列⽤于实现图形界⾯的组件,如窗⼝、按钮、⽂本框、对话框等。
如下图:其中,Component类通常被称为组件,根据Component的不同作⽤,可将其分为基本组件类和容器类。
⽽容器类则是通过Component的⼦类Container实例化的对象。
Container类表⽰容器,它是⼀种特殊的组件,可以⽤来容纳其他组件。
1、FrameFrame相当于⼀个⼤的框架,再它⾥⾯可以放多个组件、多个⾯版。
它是相对于了window界⾯来说的。
//创建⼀个Frame实例对象:Frame frame = new Frame("This is my first FrameTest");//设置界⾯可见:frame.setVisible(true);//设置窗⼝⼤⼩:frame.setSize(500,500);//设置背景颜⾊:frame.setBackground(Color.orange);//设置弹出初始位置:frame.setLocation(500,500);//设置界⾯⼤⼩固定:frame.setResizable(false);2、PanelPanel也是⼀个容器,但是它不能单独存在,只能存在其他容器(Window或其⼦类)中,⼀个Panel对象代表了⼀个长⽅形的区域,在这个区域中可以容纳其他组件。
在程序中通常会使⽤Panel来实现⼀些特殊的布局。
Java GUI编程
对话框JDialog,构造方法有:
JDialog(Frame JDialog(Frame JDialog(Frame JDialog(Frame modal); owner); owner,Boolean modal); owner,String title); owner,String title,Boolean
布局管理器(layout manager)
Java常见的几种布局管理器有:
FlowLayout BorderLayout CardLayout GridBagLayout BoxLayout GridLayout
每种布局管理器都确定了其中的组件的位置 和大小,程序员不应自己修改其位置和大小。
创建顶层窗口,例如JFrame、JApplet等。 构建若干个组件及容器。 确定布局管理器。 将组件添加到容器中。 设置组件的颜色、字体等属性。 添加组件的事件处理。
事件(event)
事件(event):基于窗口的Java应用程序 将用户的操作(例如单击按钮、鼠标移动等) 抽象为“事件”。Java定义了大量事件类, 包含在java.awt.event和 javax.swing.event包中。 事件源(event source):每一个可以触发 事件的组件被当作事件源。 监听器(listener):用来接收和处理每一种 事件。不同类型的事件对应不同的监听器。
事件
传递给
}
事件处理的软件实现
事件类(XXXEvent) 事件监听接口(XXXListener) 组 件 的 注 册 监 听 接 口 方 法 (addXXXListener()方法)
示例程序见:Demo_Event.java
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12 2-12
网格布局管理器
指定网格中的行数和列数,创建网格布局 列 组件大小相同 行
重新调整组件大小 以适合各自的单元
13 2-13
网格布局管理器的特点
将容器分割成许多行和列,组件被放置到每个格子中 按照从左到右的顺序依次放置,直到站满该行的所有网 格,然后放置下一行。 添加到网格中的组件的宽度,高度都相同。 构造函数: GridLayout(); GridLayout(int rows,int cols); GridLayout(int rows,int cols,int hgap,int vgap);
Swing
– Swing 是在AWT的基础上构建的一套新的图形界面系统,它 提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码 对AWT 的功能进行了大幅度的扩充。 – 由于在Swing 中没有使用本地方法来实现图形功能,我们通常 把Swing控件称为轻量级控件。
3 2-3
AWT和Swing
6 2-6
GUI中的重要概念__布局管理器
为什么java要使用布局管理器? 1)java程序是跨平台运行的,但是不同的平台对于点及坐标 的定义不完全相同。 2)屏幕的解析度分辨率不同也会造成位置的变化 为了确保每个组件的相对位置和大小以及外观,java特别设计 了布局管理器。 布局管理器:对容器中的元素进行管理,按照一定的规则排放容 器里面的元素。它控制了组件的摆放。 布局管理器的种类: 1)边界布局管理器: BorderLayout 2)流布局管理器: FlowLayout 3)卡片布局管理器:CardLayout 4) 网格布局管理器:GridLayout
AWT
– 在JAVA1.0和1.2中,GUI组件的标准库是AWT(Abstract Window Toolkit,抽象窗口工具包) – 在大部分平台上,AWT的组件都是使用操作系统内部GUI系统 来实现的。提供了一套与本地图形界面进行交互的接口。 – 由于AWT 是依靠本地方法来实现其功能的,我们通常把AWT 控件称为重量级控件。
etc……..
JFrame
5 2-5
GUI中的重要概念__容器
容器定义: ————用来组织其他界面元素的一个组件或单元。 容器的特点: 1)容器有一定范围,有大小,一般容器都是矩行的。 2)容器有一定的位置,这个容器位于屏幕的位置,相对位置或 者绝对位置 3)容器可以有一个背景,可以覆盖全部容器,也可以使用特殊 的图案,来使得界面个性化和生动化。 4)容器中可以包含其他容器,容器可以嵌套容器!!当容器打 开显示时候,它里面的元素同时被显示出来,否则当容器隐藏或 者关闭时,它包含的元素也被隐藏。 5)容器按一定顺序来安排它包含的元素或者组件。 6)容器可以被包含在其他容器中。
7 2-7
GUI编程步骤
定义类继承自窗体(JFrame)或者面板(JPanel)等容器 类 获得根容器Container 设置布局管理器Layout 产生各种swing或者a监听器接口。 添加组件到容器 设置窗体的属性(大小,位置等) 设置窗体可见(仅仅对于你创建的窗体而言)
awt组件,javax.swing组件都可以创建图形用户界面 awt组件是重量级组件: ————依赖于本地操作系统的GUI,缺乏平台独立性。 但是awt组件简单,稳定,兼容于任何一个JDK版本 ————java.awt.peer包中的类负责与本地操作系统交 互,本地操作系统负责显示和操作组件。 swing组件是轻量级组件: ————swing组件是用纯java语言编写的,因此 不依赖于本地操作系统的GUI,独立于本地平台的组件。 Javax.swing出项在jdk1.2
Java之GUI编程
主要内容
Java GUI类的层次结构 GUI 中的重要概念 1)GUI中容器,组件的概念 2)GUI中布局管理器的概念和运用 3)GUI中的事件委托处理机制 4)GUI中回调函数,回调的重要思想及其运用 GUI编程的步骤 GUI中监听器接口的实现方式
2 2-2
AWT和Swing
10 2-10
setSize()和setPreffersize
左上角
流布局管理器
流布局是面板的默认布局管理器
依次排序的组件
右下角 垂直或水平间距 容器
11 2-11
流布局管理器的特点
按照组件添加的顺序将他们从左到右的放置在容器中 注意:当放置的容器的宽度超过容器的边界时候,组件 将被放置在下一行上。 可以通过设置左对齐,右对齐,居中的设置组件的对齐 方式 构造方法: FlowLayout(); FlowLayout(int align); FlowLayout(int align,int hgap,int vgap);
8 2-8
边界布局管理器
North 上边的组件
左
边
右
边 CENTER 的 组 件
West
的 组
East
容器
件
下边的组件
9 2-9
边界布局管理器的特点:
边界布局管理器将容器分为5个区域,东,南,西,北, 中。 对于容器的东南西北四个区域,如果某个区域没有组件, 者该区域面积为0。 对于中间区域,不管有没有组件,BorderLayout都会 为它分配空间,如果没有组件,在中间区域显示容器的 背景色。 如果没有指定区域,则默认组件被放置到中区域。 BorderLayout(); BorderLayout(int hgap,int vgap);
4 2-4
Java GUI 类层次结构图
Java.awt
抽象类
Component
Layout
Font,Color …..
peer
Container
Button,Label…..
Window
Panel
JComponent
Frame
java.applet.Applet
JPanel
AbstractButton