按照网上对javafx的讲解写代码,实在改不出来了,不知道为什么图片加载不了,没有报错,但是窗口是白色的,什么都没有
package demo;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class fx5 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
AnchorPane root = new AnchorPane();
ImageView imageView = new ImageView();
Image image = new Image("resource/110.jpg");
imageView.setImage(image);
root.getChildren().add(imageView);
Scene scene = new Scene(root, 1000, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
}
如图所示关于图片存放:
随机形状、移动、消行、算分等都在这个类里边实现。这个类里边不涉及UI元素,纯粹游戏逻辑。
比如消行部分的逻辑实现:
private void removeRows() {
if (preview != null) {
for (var row = 0; row < preview.getHeight(); row++) {
for (var col = 0; col < preview.getWidth(); col++) {
if (preview.getCell(row, col)) {
var cell = boardData[preview.getTop() + row][preview.getLeft() + col];
cell.visable = true;
cell.color = preview.color;
}
}
}
}
preview = null;
int removeCount = 0;
for (int row = 0; row < 20; row++) {
boolean b = true;
for (int col = 0; col < 10; col++) {
var cube = boardData[row][col].visable;
b = b && cube;
}
if (b) {
removed++;
removeCount++;
for (int ui = row - 1; ui >= 0; ui--) {
for (int uj = 0; uj < 10; uj++) {
var pre = boardData[ui][uj];
boardData[ui + 1][uj].visable = pre.visable;
boardData[ui + 1][uj].color = pre.color;
}
}
}
}
var tempScore = 0;
if (removeCount == 1)
tempScore += 100;
if (removeCount == 2)
tempScore += 200;
if (removeCount == 3)
tempScore += 400;
if (removeCount == 4)
tempScore += 400;
score += tempScore;
levelScore += tempScore;
if (levelScore >= 2000) {
if (level < 12) {
level++;
ticks = 1065 - level * 65;
} else
level = 1;
levelScore = 0;
}
}
对于在使用IDEA开发JavaFX应用程序中插入图片的问题,通常需要注意以下几点:
1.图片的文件路径在项目的resources文件夹下,必须使用相对路径 2.文件名区分大小写,例如"xxx.png"与"xxx.PNG"是不同的文件名 3.图片文件格式必须是JavaFX支持的格式,例如".jpg", ".png"等
下面是一个简单的示例代码,展示如何在JavaFX中插入图片:
1.在项目的resources文件夹下创建一个名为"image.png"的图片文件
2.在fxml文件中使用ImageView标签插入图片,注意设置图片的路径和大小
<ImageView fitWidth="200" fitHeight="200" >
<image>
<Image url="@/image.png"/>
</image>
</ImageView>
3.如果是在Java代码中动态插入图片,则需要使用Image类,首先需要创建一个Image对象,然后将其设置为一个ImageView对象的图像源,最后将ImageView添加到场景中即可。
Image image = new Image(getClass().getResourceAsStream("/image.png"));
ImageView imageView = new ImageView(image);
scene.getRoot().getChildren().add(imageView);
如果使用以上方法仍无法加载图片,可以根据错误信息和日志文件进一步排查问题。
图片路径地址没找到吧