冯斌:JavaFx实例(十三)“FontEffect”

本实例演示用JavaFx改变文字的字体,制造文字的阴影和倒影等效果。将会用到如下的三个类:

javafx.scene.text.Font

javafx.scene.effect.DropShadow

javafx.scene.effect.Reflection

本实例的代码如下:

import javafx.application.Application;
import javafx.scene.layout.Pane; 
import javafx.scene.Scene; 
import javafx.scene.effect.DropShadow; 
import javafx.scene.effect.Reflection; 
import javafx.scene.paint.Color; 
import javafx.scene.text.Font; 
import javafx.scene.text.Text; 
import javafx.stage.Stage;

public class FontEffect extends Application {
   @Override // Override the start method in the Application class
   public void start(Stage primaryStage) {
   Pane pane = new Pane();
   Scene scene = new Scene(pane, 550, 250, Color.WHITE);
   
   // Serif with drop shadow
   Text text2 = new Text(50, 50, "JavaFx Programing 冯斌");
   Font serif = Font.font("Serif", 30);
   text2.setFont(serif);
   text2.setFill(Color.RED);
   DropShadow dropShadow = new DropShadow();
   dropShadow.setOffsetX(2.0f);
   dropShadow.setOffsetY(2.0f);
   dropShadow.setColor(Color.rgb(50, 50, 50, .588));
   text2.setEffect(dropShadow);
   pane.getChildren().add(text2);

   // SanSerif 
   Text text3 = new Text(50, 100, "JavaFx Programing 冯斌");
   Font sanSerif = Font.font("SanSerif", 30);
   text3.setFont(sanSerif);
   text3.setFill(Color.BLUE);
   pane.getChildren().add(text3);

   //Monospaced
   Text text4 = new Text(50, 150, "JavaFx Programing 冯斌");
    Font monoFont = Font.font("Monospaced", 30);
    text4.setFont(monoFont);
    text4.setFill(Color.BLACK);
    pane.getChildren().add(text4);

    Reflection refl = new Reflection();
    refl.setFraction(0.8f);
    text4.setEffect(refl);

    primaryStage.setTitle("FontEffect");// Set the stage title
    primaryStage.setScene(scene); // Place the scene in the stage
    primaryStage.show();// Display the stage
  }
}

运行结果如下:

说明:

1、第25行代码中的0.588代表的是透明度。

2、第44行代码中的0.8f表示的是可以看到80%的倒影。

时间: 2024-11-17 20:30:36

冯斌:JavaFx实例(十三)“FontEffect”的相关文章

冯斌:JavaFx实例(六)“ShowImage”

javafx.scene.image.Image类的作用是从文件或者网站显示一个图片,例如:new Image("image/us.gif")为图形文件us.gif创建一个Image对象. javafx.scene.image.ImageView是显示图片的node.一个ImageView能从一个Image对象创建.例如: Image image = new Image("image/us.gif"); ImageView imageView = new Image

冯斌:JavaFx实例(七)“ShowFlowPane”

FlowPane将node从左到右水平或从上到下垂直放置在pane中,分别用到Orientation.HORIZONTAL和Orientation.VERTICAL方法. 我们也可以设置node之间的距离,下面的例子演示FlowPane的用法: import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.La

冯斌:JavaFx实例(十二)“ColorText”

下面的实例用不同的颜色.方向重复显示一行文字. 本实例代码如下: import java.util.Random;  import javafx.application.Application;  import javafx.scene.Group;  import javafx.scene.Scene;  import javafx.scene.paint.Color;  import javafx.scene.text.Text;  import javafx.stage.Stage;   

冯斌:JavaFx实例(一)“HelloWorld”

本段代码是JavaFx入门最常见的代码,它的作用是在"窗体"中央显示一个Button按钮,单击这个Button按钮,在控制台输出"Hello World",详细代码如下: import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Parent; import javafx.s

C语言库函数大全及应用实例十三

原文:C语言库函数大全及应用实例十三                                          [编程资料]C语言库函数大全及应用实例十三 函数名: stat 功 能: 读取打开文件信息 用 法: int stat(char *pathname, struct stat *buff); 程序例: #i nclude #i nclude #i nclude #define FILENAME "TEST.$$$" int main(void) { struct st

冯斌:JavaFx实例(九)“Text”

在JavaFx中Text类定义了一个node,这个node能显示字符串,如下图所示. 其中点(x,y)是字符串的起点.Text对象通常放在一个pane对象里.Pane对象的左上角坐标是(0,0),右下角的坐标是(pane.getWidth(),pane.getHeight()).多行字符串用\n分割开来. Text类的UML图如下图所示.一个shape就是一个node,Shape类是其他所有图形类的根类. 程序实例清单如下: import javafx.application.Applicati

冯斌:JavaFx实例(十一)“ControlCircle”

本实例是在实例(十)的基础上给按钮加上了句柄,可以用按钮对实例(十)中的圆进行缩放. 本实例的代码如下: import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button;

冯斌:JavaFx实例(十)“ControlCircleWithoutEventHandling”

实例(十)与实例(十一)阐述了怎样给按钮添加事件句柄,实例(十)是未添加句柄前的效果,实例(十一)是添加句柄后的效果. 本实例代码如下: import javafx.application.Application; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx

Atitit 桌面软件跨平台gui解决方案 javafx webview

1.1. 双向js交互1 1.2. 新弹出窗口解决1 1.3. 3.文档对象入口dom解析1 1.4. 所以果断JavaFX,就像在windows上也不用MFC或者Winforms,都用WPF了. 1 1.5. JavaFX,因为Swing这个框架已经很久没有更新过了 2 1.6. Embedded Browser2 1.7. Javafx 还有很强大的图像处理类库javafx.scene.effect.BlendMode2 1.8. Javafx 样板源码halloworld3 2. 4 1.