java anchorpane_AnchorPane

本文介绍如何使用 JavaFX 的 AnchorPane 布局管理器来创建动态旋转的圆柱体,详细展示了如何设置节点的锚点偏移量,并通过一个具体示例说明了 AnchorPane 的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AnchorPane

锚点窗格允许子节点的边缘锚定到锚点窗格边缘的偏移量。 如果锚窗格具有边框和/或填充集,则将从这些插图的内边缘测量偏移。

如果我们在应用程序中使用Anchor窗格,则其中的节点将锚定在距窗格特定距离处。

包javafx.scene.layout名为AnchorPane的类表示Anchor窗格。 添加节点后,您需要从窗格的所有方向(顶部,底部,右侧和左侧)设置锚点。 要设置锚点,此类提供四种方法,即 - setBottomAnchor(), setTopAnchor(), setLeftAnchor(), setRightAnchor() 。 对于这些方法,您需要传递表示锚点的double值。

例子 (Example)

以下程序是Anchor Pane布局的示例。 在此,我们在锚窗格中插入旋转圆柱体。 与此同时,我们将它设置在距离所有方向(顶部,左侧,右侧,底部)的窗格50个单元的位置。

将此代码保存在名为AnchorPaneExample.java的文件中。import javafx.animation.RotateTransition;

import javafx.collections.ObservableList;

import javafx.scene.Scene;

import javafx.scene.layout.AnchorPane;

import javafx.scene.paint.Color;

import javafx.scene.paint.PhongMaterial;

import javafx.scene.shape.Cylinder;

import javafx.scene.transform.Rotate;

import javafx.stage.Stage;

import javafx.util.Duration;

public class AnchorPaneExample extends Application {

@Override

public void start(Stage stage) {

//Drawing a Cylinder

Cylinder cylinder = new Cylinder();

//Setting the properties of the Cylinder

cylinder.setHeight(180.0f);

cylinder.setRadius(100.0f);

//Preparing the phong material of type diffuse color

PhongMaterial material = new PhongMaterial();

material.setDiffuseColor(Color.BLANCHEDALMOND);

//Setting the diffuse color material to Cylinder5

cylinder.setMaterial(material);

//Setting rotation transition for the cylinder

RotateTransition rotateTransition = new RotateTransition();

//Setting the duration for the transition

rotateTransition.setDuration(Duration.millis(1000));

//Setting the node for the transition

rotateTransition.setNode(cylinder);

//Setting the axis of the rotation

rotateTransition.setAxis(Rotate.X_AXIS);

//Setting the angle of the rotation

rotateTransition.setByAngle(360);

//Setting the cycle count for the transition

rotateTransition.setCycleCount(RotateTransition.INDEFINITE);

//Setting auto reverse value to false

rotateTransition.setAutoReverse(false);

//playing the animation

rotateTransition.play();

//Creating an Anchor Pane

AnchorPane anchorPane = new AnchorPane();

//Setting the anchor to the cylinder

AnchorPane.setTopAnchor(cylinder, 50.0);

AnchorPane.setLeftAnchor(cylinder, 50.0);

AnchorPane.setRightAnchor(cylinder, 50.0);

AnchorPane.setBottomAnchor(cylinder, 50.0);

//Retrieving the observable list of the Anchor Pane

ObservableList list = anchorPane.getChildren();

//Adding cylinder to the pane

list.addAll(cylinder);

//Creating a scene object

Scene scene = new Scene(anchorPane);

//Setting title to the Stage

stage.setTitle("Anchor Pane Example");

//Adding scene to the stage

stage.setScene(scene);

//Displaying the contents of the stage

stage.show();

}

public static void main(String args[]){

launch(args);

}

}

使用以下命令从命令提示符编译并执行保存的java文件。javac AnchorPaneExample.java

java AnchorPaneExample

执行时,上面的程序生成一个JavaFX窗口,如下所示。

15fcce80877a9a830efa288b33099a6d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值