山 西 大 学 计 算 机 与 信 息 技 术 学 院
实 验 报 告
姓 名
学 号
专业班级
数据科学与大数据技术 2002
课程名称
Java 实验
实验日期
2021.11.29
成 绩
指导教师
王齐
批改日期
实 验 名 称
实验 8 JAVAFX 程序设计
一、实验目的
掌握常用 GUI 控制组件及其事件处理。
二、实验内容
1.编程包含一个标签和一个按钮,单击按钮时,标签的内容在“你好”和“再见”之间切换。分
别用本类(该类自身),外部类,内部类,匿名内部类,以及 lambda 表达式完成。
程序代码:
//本类
package project8;
import javafx.application.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.*;
public class Hello_Bye extends Application implements EventHandler<ActionEvent> {
Label l=new Label("你好");
Button btn=new Button();
@Override
public void start(Stage primaryStage) {
VBox root=new VBox(10);
root.setAlignment(Pos.CENTER);
btn.setMinSize(100, 50);
l.setMinSize(40, 30);
root.getChildren().addAll(l,btn);
Hello_Bye h=new Hello_Bye();
btn.setOnAction(h);
Scene s=new Scene(root,250,200);
primaryStage.setTitle("你好和再见");
primaryStage.setScene(s);
primaryStage.show();
}
@Override
public void handle(ActionEvent e) {//利用((Button) (e.getSource())).getParent()获取标签 l 的父亲面
板
if (((Label) ((Button)
(e.getSource())).getParent().getChildrenUnmodifiable().get(0)).getText() == "你好")//调用 get(控件在面板
的下标) 方法获取标签 l,然后强制类型转换
((Label) ((Button)
(e.getSource())).getParent().getChildrenUnmodifiable().get(0)).setText("再见");
评论0