Java语言程序设计——篇十四(2)

news2024/9/27 23:31:24

在这里插入图片描述
在这里插入图片描述

       🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

  • 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
    您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻

在这里插入图片描述

JavaFX基础

  • Color和Font类
    • Color类
    • Font类
      • 实战演练
  • JavaFX形状
    • Line类及实例
      • 实战演练
  • Image和ImageView类
    • Image类
    • ImageView类
      • 实战演练
  • 特效实现
    • 阴影效果及实例
      • 实战演练

Color和Font类

Color类

  • 使用javafx.scene.paint.Color类可以创建颜色对象,并为形状或文本指定不同的颜色。
  • 可以通过Color类的常量创建颜色,还可通过构造方法和Color类的静态方法创建颜色。
  • Color类中定义了构造方法可以创建颜色对象。
Color(double red, double green, double blue, double opacity)
Color c = new Color(0, 0, 1, 1.0);
  • Color类还定义了多种静态方法可以返回颜色对象,如color()方法、rgb()方法和web()方法等,这些方法都可以省略(默认值是1.0)或指定颜色的透明度。
Color c = Color.color(0,0,1.0); 
Color c = Color.rgb(0,0,255);
Color c = Color.web("0x0000FF",1.0);

Font类

Font类的实例表示字体,包含字体的相关信息,如字体名字体
粗细
字体形态和大小
构造方法:

Font(double size)
Font(String name, double size)
  • 用静态方法返回字体对象:
static Font font(String family,FontWeight weight,double size)
static Font font(String family, FontWeight weight, 
                                //FontWeight枚举常量:
BOLD,粗体
LIGHT,轻体
NORMAL,正常体
FontPosture posture,double size)
//FontPosture枚举常量:
ITALIC,斜体
REGULAR,正常体
  • 使用getFamily()实例方法返回系统默认的字体。
static List<String> getFamilies()
static List<String> getFontNames()

在这里插入图片描述

实战演练

【练习 】 实现FontDemo.java JavaFX程序

import javafx.application.Application;  
import javafx.scene.Scene;  
import javafx.scene.control.Label;  
import javafx.scene.layout.VBox;  
import javafx.scene.text.Font;  
import javafx.stage.Stage;  
  
public class FontDemo extends Application {  
  
    @Override  
    public void start(Stage primaryStage) {  
        // 创建一个VBox作为根节点,用于垂直排列标签  
        VBox vBox = new VBox(10); // 10是子节点之间的间距  
  
        // 创建并配置第一个标签,使用Arial字体  
        Label label1 = new Label("Arial Font");  
        label1.setFont(new Font("Arial", 20)); // 设置字体和大小  
        vBox.getChildren().add(label1);  
  
        // 创建并配置第二个标签,使用Serif字体  
        Label label2 = new Label("Serif Font");  
        label2.setFont(new Font("Serif", 24, Font.BOLD)); // 设置字体、大小和样式  
        vBox.getChildren().add(label2);  
  
        // 创建并配置第三个标签,使用Monospaced字体  
        Label label3 = new Label("Monospaced Font");  
        label3.setFont(new Font("Monospaced", 18, Font.ITALIC)); // 设置字体、大小和样式  
        vBox.getChildren().add(label3);  
  
        // 创建一个场景,将根节点和尺寸传递给场景  
        Scene scene = new Scene(vBox, 300, 200);  
  
        // 配置并显示舞台  
        primaryStage.setTitle("Font Demo"); // 设置舞台标题  
        primaryStage.setScene(scene); // 将场景添加到舞台  
        primaryStage.show(); // 显示舞台  
    }  
  
    public static void main(String[] args) {  
        launch(args); // 启动JavaFX应用程序  
    }  
}

JavaFX形状

Line类及实例

  • Line类创建直线,需要为Line实例指定起始坐标和终点坐标。
    构造方法:
public Line()
public Line(double startX, double startY, double endX, double endY)
Line line = new Line();line.setStartX(100); // 设置起点坐标
line.setStartY(10);
line.setEndX(10); // 设置终点坐标
line.setEndY(110);

在这里插入图片描述

实战演练

实现LineDemo.java JavaFX程序

import javafx.application.Application;  
import javafx.scene.Scene;  
import javafx.scene.layout.Pane;  
import javafx.scene.shape.Line;  
import javafx.stage.Stage;  
  
public class LineDemo extends Application {  
  
    @Override  
    public void start(Stage primaryStage) {  
        // 创建一个Pane作为根节点,Pane是一个可以包含子节点的布局容器  
        Pane pane = new Pane();  
  
        // 创建并配置第一条线,从(10, 10)到(100, 100)  
        Line line1 = new Line(10, 10, 100, 100);  
        line1.setStrokeWidth(2); // 设置线条的宽度  
        line1.setStroke(javafx.scene.paint.Color.BLACK); // 设置线条的颜色  
  
        // 创建并配置第二条线,从(100, 10)到(10, 100),与第一条线交叉  
        Line line2 = new Line(100, 10, 10, 100);  
        line2.setStrokeWidth(2);  
        line2.setStroke(javafx.scene.paint.Color.RED); // 使用不同的颜色以区分  
  
        // 将线条添加到Pane中  
        pane.getChildren().addAll(line1, line2);  
  
        // 创建一个场景,将根节点和尺寸传递给场景  
        Scene scene = new Scene(pane, 200, 200);  
  
        // 配置并显示舞台  
        primaryStage.setTitle("Line Demo"); // 设置舞台标题  
        primaryStage.setScene(scene); // 将场景添加到舞台  
        primaryStage.show(); // 显示舞台  
    }  
  
    public static void main(String[] args) {  
        launch(args); // 启动JavaFX应用程序  
    }  
}

Image和ImageView类

Image类

  • 可以在JavaFX的场景图中显示标准的图像,有多种标准格式图像,
    如.jpg、.png、.gif和.bmp等,这需要两步:
    ①使用javafx.scene.image.Image类从本地系统或远程服务器加载图像
    ②使用javafx.scene.image.ImageView节点显示图像
  • 构造方法:
public Image(String url)
public Image(InputStream inputStream)
public Image(String url, boolean backLoading)
Image image = new Image("images/flower.png");
File file = new File("D:\\images\\koala.png");
String localUrl = file.toURI().toURL().toString();
Image localImage = new Image(localUrl, false);
Image image = new Image(getClass().getResourceAsStream("koala.png"),true);
String remoteUrl = "http://mycompany.com/myphoto.jpg";
Image remoteImage = new Image(remoteUrl, true);

ImageView类

  • 显示图像:使用ImageView节点对象
    构造方法:
public ImageView()
public ImageView(Image image)
public ImageView(String fileUrl)
  • 由于ImageView也是Node对象,因此也可以对它应用变换、缩放、模糊等特效。
  • 在这里插入图片描述

实战演练

【练习 】 实现FontDemo.java JavaFX程序

import javafx.application.Application;  
import javafx.scene.Scene;  
import javafx.scene.control.Label;  
import javafx.scene.image.Image;  
import javafx.scene.image.ImageView;  
import javafx.scene.layout.HBox;  
import javafx.scene.layout.VBox;  
import javafx.scene.text.Font;  
import javafx.stage.Stage;  
  
public class FontDemo extends Application {  
  
    @Override  
    public void start(Stage primaryStage) {  
        // 创建一个VBox作为主容器  
        VBox vBox = new VBox(10);  
  
        // 创建并配置ImageView来显示图像  
        Image image = new Image("file:path/to/your/image.png"); // 替换为你的图像路径  
        ImageView imageView = new ImageView(image);  
        imageView.setFitWidth(200); // 可选:设置图像的适应宽度  
        imageView.setPreserveRatio(true); // 保持图像的宽高比  
  
        // 创建并配置一个标签,展示不同字体的文本  
        Label label = new Label("这里展示不同字体的文本");  
        label.setFont(new Font("Arial", 18, Font.BOLD_ITALIC)); // 设置字体、大小和样式  
  
        // 创建一个HBox来水平排列ImageView和Label  
        HBox hBox = new HBox(10, imageView, label);  
  
        // 将HBox添加到VBox中  
        vBox.getChildren().add(hBox);  
  
        // 创建一个场景,将根节点和尺寸传递给场景  
        Scene scene = new Scene(vBox, 300, 200);  
  
        // 配置并显示舞台  
        primaryStage.setTitle("Font Demo with Image"); // 设置舞台标题  
        primaryStage.setScene(scene); // 将场景添加到舞台  
        primaryStage.show(); // 显示舞台  
    }  
  
    public static void main(String[] args) {  
        launch(args); // 启动JavaFX应用程序  
    }  
}

特效实现

阴影效果及实例

  • 使用DropShadow对象实现节点内容的阴影效果,可以指定阴影
    颜色半径偏移量。调用节点的setEffect()方法设置这些效果。
text.setEffect(dropShadow);

在这里插入图片描述

实战演练

【练习 】 实现DropShadowDemo.java JavaFX程序

import javafx.application.Application;  
import javafx.scene.Scene;  
import javafx.scene.control.Button;  
import javafx.scene.effect.DropShadow;  
import javafx.scene.layout.StackPane;  
import javafx.stage.Stage;  
  
public class DropShadowDemo extends Application {  
  
    @Override  
    public void start(Stage primaryStage) {  
        // 创建一个按钮  
        Button btn = new Button("带阴影的按钮");  
  
        // 创建一个DropShadow效果  
        // 你可以设置多个参数,如偏移量、颜色、模糊半径、扩展半径等  
        DropShadow dropShadow = new DropShadow(10, Color.BLACK); // 默认模糊半径和扩展半径为0  
        dropShadow.setColor(Color.BLUE); // 设置阴影颜色为蓝色  
        dropShadow.setBlurType(BlurType.TWO_PASS_BOX); // 设置模糊类型  
        dropShadow.setRadius(15); // 设置模糊半径  
        dropShadow.setSpread(0.5); // 设置扩展半径  
  
        // 将DropShadow效果应用到按钮上  
        btn.setEffect(dropShadow);  
  
        // 使用StackPane作为布局容器  
        StackPane root = new StackPane();  
        root.getChildren().add(btn); // 将按钮添加到布局容器中  
  
        // 创建一个场景,将布局容器和尺寸传递给场景  
        Scene scene = new Scene(root, 300, 250);  
  
        // 配置并显示舞台  
        primaryStage.setTitle("DropShadow Demo"); // 设置舞台标题  
        primaryStage.setScene(scene); // 将场景添加到舞台  
        primaryStage.show(); // 显示舞台  
    }  
  
    public static void main(String[] args) {  
        launch(args); // 启动JavaFX应用程序  
    }  
}  
  
// 注意:上面的代码示例缺少Color类的导入,因为JavaFX的Color类没有直接包含在上面的代码中。  
// 你需要添加以下导入语句来修复这个问题:  
// import javafx.scene.paint.Color;  
// import javafx.scene.effect.BlurType;

博主用心写,读者点关注,互动传真情,知识不迷路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2052707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++11(二)

一、右值引用 1、区分左值和右值 语法定义&#xff0c;左值可以取地址&#xff0c;右值无法取地址&#xff08;右值肯定有地址&#xff0c;但是为了和左值区分&#xff0c;语法上不让取地址&#xff09; 左值&#xff1a;一个表示数据的表达式&#xff08;变量名或解引用指针…

如何配置ESXI主机的IP地址管理

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

通过python脚本查询自己阿里云账号里的某个域名的A记录解析情况,以及测拨,用于排查未使用的解析

安装sdk pip install aliyun-python-sdk-alidns代码全文 import json import requests from aliyunsdkcore.client import AcsClient from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequest# 替换为你的阿里云 AccessKey ID 和 AccessKey Secret acce…

栈与队列 - 逆波兰表达式求值

150. 逆波兰表达式求值 方法一&#xff1a;栈 /*** param {string[]} tokens* return {number}*/ var evalRPN function(tokens) {const stack [];for (const token of tokens) {if (isNaN(Number(token))) { // 非数字const n2 stack.pop(); // 出栈两个数字const n1 s…

假期作业--数据结构

1、顺序表实现学生管理系统&#xff08;参照顺序表技能&#xff09;写出菜单界面switch选择&#xff0c;功能1创建顺序表&#xff08;堆区&#xff09;&#xff0c;2录入学生信息&#xff0c;3插入一个学生信息&#xff0c;4删除一个学生信息&#xff0c;5按照位置修改一个学生…

javaEE中自定义注解以及注解的解析

注解&#xff1a; 就是java代码里的特殊标记&#xff0c;比如Override、Test,作用是&#xff1a;让其它程序根据注解信息来决定怎么执行程序。 自定义注解&#xff1a;自己定义注解 Public interface 注解名称{ Public 属性类型 属性名&#xff08;&#xff09; default 默认…

写字楼/办公室为什么要建设智慧公厕?有哪些价值?@卓振思众

智慧公厕是指利用先进技术和设备对公共厕所进行智能化管理的系统。这些技术包括物联网&#xff08;IoT&#xff09;、传感器技术、大数据分析和自动化系统等。【卓振思众】智慧公厕不仅提升了公厕的使用体验&#xff0c;还实现了更高效的管理和维护。 写字楼/办公室智慧公厕的定…

揭秘RAG与大模型对接:深入探讨9大隐藏挑战

前一段时间&#xff0c;各个大模型在争斗&#xff1a;谁能携带更长、更大的上下文 Prompt&#xff0c;比如 Kimi 说 200 万字&#xff0c;阿里通义千问又说自己能达 1000 万字&#xff1b;大家都知道 Prompt 很重要&#xff0c;但是 RAG 和 长的上下文文本携带 是两个不同的技术…

mac查看jdk安装目录

打开终端&#xff0c;直接输入命令&#xff1a; /usr/libexec/java_home终端即会输出jdk的安装目录&#xff1a;

8.17日学习打卡---Spring Cloud Alibaba(四)

8.17日学习打卡 目录&#xff1a; 8.17日学习打卡分布式流量防护什么是服务雪崩解决方案内部异常治理外部流量控制 SentinelSentinel 基本概念Sentinel 的主要特性Sentinel 是如何工作的Sentinel 与 Hystrix、resilience4j 的对比安装Sentinel控制台将应用接入Sentinel流量控制…

python使用flask实现自动根据url寻找对应目录/文件/方法,实现动态路由

例如访问:/user/index/index_config 则自动访问/user 目录里 index.py文件里的 index_config 方法 实现代码 from flask import Flask,jsonifyapp Flask(__name__)def reg_func(code, data, msg, debugNone, showFalse):return jsonify({code: code,data: data,msg: msg,time…

iPhone照片怎么导入电脑?一键导入毫不费力

随着智能手机的普及&#xff0c;我们越来越依赖手机来记录生活的点点滴滴。iPhone作为其中的佼佼者&#xff0c;其高质量的摄像头为用户捕捉了无数珍贵瞬间。然而&#xff0c;随着照片数量的增多&#xff0c;手机存储空间可能会变得捉襟见肘&#xff0c;此时将照片导入电脑既能…

UniAD_面向规划的自动驾驶

Planning-oriented Autonomous Driving 面向规划的自动驾驶 https://github.com/OpenDriveLab/UniAD Abstract Modern autonomous driving system is characterized as modular tasks in sequential order, i.e., perception, prediction, and planning. In order to perfor…

Python 如何创建和管理虚拟环境?

Python虚拟环境是一个独立的运行环境&#xff0c;能够与系统的全局Python环境相隔离。它允许你在不影响系统其他项目的前提下&#xff0c;为每个项目创建独立的Python环境&#xff0c;并在该环境中安装特定版本的包和依赖项。这在开发多个项目时非常有用&#xff0c;尤其是当这…

EmguCV学习笔记 VB.Net 4.1 颜色变换

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 教程VB.net版本请访问&#xff1a;EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问&#xff1a;EmguCV学习笔记 C# 目录-CSD…

使用Python实现B站自动答题机器人

文章目录 1. 写在前面2. 接口分析3. 点选验证分析4. Python程序实现 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长…

解密Linux中的通用块层:加速存储系统,提升系统性能

通用块层 通用块层是Linux中的一个重要组件&#xff0c;用于管理不同块设备的统一接口&#xff0c;减少不同块设备的差异带来的影响。它位于文件系统和磁盘驱动之间&#xff0c;类似于Java中的适配器模式&#xff0c;让我们无需关注底层实现&#xff0c;只需提供固定接口即可。…

【13】即时编译(JIT)

概念 即时编译是用来提升应用运行效率的技术。代码会先在JVM上解释执行&#xff0c;之后反复执行的热点代码会被即时翻译成为机器码&#xff0c;直接运行在底层硬件上。 分层编译模式 HotSpot包含多个即时编译器&#xff1a;C1、C2和Graal&#xff08;Java 10&#xff0c;实验…

Native开发与逆向第一篇-字符串

开发 Android studio新建项目 Android studio新建一个Native C项目。 默认代码就是调用Native 方法stringFromJNI 返回一个字符串。 public native String stringFromJNI();C 代码 stringFromJNI 函数的代码&#xff0c;默认使用的是静态注册的方式&#xff0c;静态注册是函…

【数据结构】链式结构实现:二叉树

二叉树 一.快速创建一颗二叉树二.二叉树的遍历1.前序、中序、后序遍历&#xff08;深度优先遍历DFS&#xff09;2.层序遍历&#xff08;广度优先遍历BFS&#xff09; 三.二叉树节点的个数四.二叉树叶子节点的个数五.二叉树的高度六.二叉树第k层节点个数七.二叉树查找值为x的节点…