javafx中如何给面板添加背景图片例如BorderPane

javafx中如何给面板添加背景图片例如BorderPane,第1张

用指定的图片构造标签对象lb。

把标签放在第二层JlayerPane上。

设置标签的尺寸,即背景图象的大小。

把内容面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。

将标签添加到主面板pnlMain中。

主要思路:

JavaFX 显示图片,常用的是ImageView

JavaFX 响应 左右按钮, 那么可以用Scene 来接收键盘按下的事件,然后控制图片左右移动

显示的效果图

参考代码

import javafx.application.Application

import javafx.scene.Scene

import javafx.scene.image.ImageView

import javafx.scene.input.KeyCode

import javafx.scene.layout.BorderPane

import javafx.stage.Stage

public class JavaFXDemo extends Application {

public static void main(String[] args) {

launch(args)

}

@Override

public void start(Stage primaryStage) throws Exception {

BorderPane root = new BorderPane() // 边界布局

Scene scene = new Scene(root, 530,230)// 创建场景

// 显示图片组件

ImageView imgView = new ImageView(this.getClass().getResource("jbp.png").toExternalForm())

root.setCenter(imgView)

// 主舞台的设置

primaryStage.setScene(scene)

primaryStage.setTitle("拖动图片")

primaryStage.show()

// 响应键盘按下事件 ,注意添加对象是scene ,不是 imgView

scene.setOnKeyPressed(e -> {

KeyCode code = e.getCode()

if (code.equals(KeyCode.LEFT)) { // 按下了左键

imgView.setTranslateX(imgView.getTranslateX() - 10)

} else if (code.equals(KeyCode.RIGHT)) {//按下了右键

imgView.setTranslateX(imgView.getTranslateX() + 10)

} else if (code.equals(KeyCode.UP)) {//按下了上方向键

imgView.setTranslateY(imgView.getTranslateY() - 10)

} else if (code.equals(KeyCode.DOWN)) {//按下了下方向键

imgView.setTranslateY(imgView.getTranslateY() + 10)

}

})

}

}

外面套一个Group。

group.getChildren().addAll(new ImageView(new Image(this.class.getResourceAsStream("images/logo_16.png"))),borderPane)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11497815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存