Java实验报告:JavaFX GUI控制组件与事件处理学习及实践
需积分: 5 121 浏览量
更新于2024-03-22
收藏 616KB DOC 举报
本专栏主要提供了Java程序设计(基础)和Java程序设计(进阶)的实验报告,涵盖了各种重要主题,如JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java输入输出流、反射、泛型、注解、网络编程、多线程、序列化、数据库、Servlet、JSP、XML解析、单例模式与枚举等。本专栏的目标是为Java入门者提供实验参考和学习指导。
在本篇实验报告中,主要介绍了实验8 JAVAFX程序设计的内容。实验的目的是掌握常用的GUI控制组件以及它们的事件处理。实验内容包括编程一个包含一个标签和一个按钮的程序,在点击按钮时,标签的内容在“你好”和“再见”之间切换。此外,实验要求使用本类(该类自身)、外部类、内部类、匿名内部类以及lambda表达式来完成不同的方式。通过这个实验,学生能够熟练掌握各种事件处理方式,加深对GUI编程的理解。
最终,学生需要完成一个程序代码,如下所示:
```java
// test1.Java 本类(该类自身)
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.FlowPane;
import javafx.scene;
public class Test1 extends Application {
private Label label;
private Button button;
private boolean flag = false;
@Override
public void start(Stage primaryStage) {
label = new Label("你好");
button = new Button("切换");
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if(flag) {
label.setText("你好");
} else {
label.setText("再见");
}
flag = !flag;
}
});
FlowPane root = new FlowPane();
root.getChildren().addAll(label, button);
Scene scene = new Scene(root, 200, 100);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
通过完成这个实验,学生能够熟练掌握JavaFX的基本操作,包括GUI控件的使用和事件处理。同时,通过不同的编程方式,可以更好地理解Java语言的灵活性和多样性。这对于提高学生的编程能力和解决问题的能力都是非常有益的。希望本专栏的实验报告能够对Java入门者的学习和成长有所帮助。
2022-05-11 上传
2019-03-26 上传
2021-11-24 上传
2024-06-28 上传
2021-09-19 上传
2022-06-11 上传
2022-06-10 上传
2021-02-28 上传
淡写╮青春
- 粉丝: 2070
- 资源: 32
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析