把标签放在第二层JlayerPane上。
设置标签的尺寸,即背景图象的大小。
把内容面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。
将标签添加到主面板pnlMain中。
外面套一个Group。group.getChildren().addAll(new ImageView(new Image(this.class.getResourceAsStream("images/logo_16.png"))),borderPane)
主要思路:
JavaFX 显示图片,常用的是ImageView
JavaFX 响应 左右按钮, 那么可以用Scene 来接收键盘按下的事件,然后控制图片左右移动
显示的效果图
参考代码
import javafx.application.Applicationimport 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)
}
})
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)