当前位置: 首页 > 知识库问答 >
问题:

不显示Javafx的图像

钱振
2023-03-14
package DiceProject;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.layout.Pane;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javax.swing.*;
import java.lang.Object;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.layout.Region;
import javafx.scene.control.Control;
import javafx.scene.control.Labeled;
import javafx.scene.control.Label;
/**
 *
 * @author Ethan C.B. Powell
 */
public class DiceProject extends Application {
double Bankroll;
double Loses;
double Winnings;

    @Override
    public void start(Stage primaryStage) {
        Pane pane = new Pane();

        String BetAmountString;

        double BetAmount;
        Bankroll account1 = new Bankroll();

        BetAmountString = JOptionPane.showInputDialog(null, "Enter your wager: ");
        BetAmount = Integer.parseInt(BetAmountString);

        Button btn = new Button();
        btn.setText("Ready to Play???");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {

            //NEEDS MUSIC


            int Dice1 = 1 + (int)(Math.random()*6);

            switch (Dice1) {
            case 1:
              Image diceface11 = new Image("/DiceProject/diceface1.png", true);
              ImageView diceresult11 = new ImageView(diceface11);
              diceresult11.setX(200);
              diceresult11.setY(200);
                     break;
            case 2:
             Image diceface12 = new Image("/DiceProject/diceface2.png", true);
              ImageView diceresult12 = new ImageView(diceface12);
              diceresult12.setX(200);
              diceresult12.setY(200);
                     break;
            case 3:
             Image diceface13 = new Image("/DiceProject/diceface3.png", true);
              ImageView diceresult13 = new ImageView(diceface13);
              diceresult13.setX(200);
              diceresult13.setY(200);
                     break;
            case 4:
             Image diceface14 = new Image("/DiceProject/diceface4.png", true);
              ImageView diceresult14 = new ImageView(diceface14);
              diceresult14.setX(200);
              diceresult14.setY(200);
                     break;
            case 5:
             Image diceface15 = new Image("/DiceProject/diceface5.png", true);
              ImageView diceresult15 = new ImageView(diceface15);
              diceresult15.setX(200);
              diceresult15.setY(200);
                     break;
            case 6:
             Image diceface16 = new Image("/DiceProject/diceface6.png", true);
              ImageView diceresult16 = new ImageView(diceface16);
              diceresult16.setX(200);
              diceresult16.setY(200);
                     break;
            default:
              Image diceface17 = new Image("/DiceProject/diceface1.png", true);
              ImageView diceresult17 = new ImageView(diceface17);
              diceresult17.setX(200);
              diceresult17.setY(200);
                     break;
            }

      int Dice2 = 1 + (int)(Math.random()*6);
      switch (Dice2) {
            case 1:
              Image diceface21 = new Image("/DiceProject/diceface1.png", true);
              ImageView diceresult21 = new ImageView(diceface21);
              diceresult21.setX(400);
              diceresult21.setY(200);
                     break;
            case 2:
             Image diceface22 = new Image("/DiceProject/diceface2.png", true);
              ImageView diceresult22 = new ImageView(diceface22);
              diceresult22.setX(400);
              diceresult22.setY(200);
                     break;
            case 3:
             Image diceface23 = new Image("/DiceProject/diceface3.png", true);
              ImageView diceresult23 = new ImageView(diceface23);
              diceresult23.setX(400);
              diceresult23.setY(200);
                     break;
            case 4:
             Image diceface24 = new Image("/DiceProject/diceface4.png", true);
              ImageView diceresult24 = new ImageView(diceface24);
              diceresult24.setX(400);
              diceresult24.setY(200);
                     break;
            case 5:
             Image diceface25 = new Image("/DiceProject/diceface5.png", true);
              ImageView diceresult25 = new ImageView(diceface25);
              diceresult25.setX(400);
              diceresult25.setY(200);
                     break;
            case 6:
             Image diceface26 = new Image("/DiceProject/diceface6.png", true);
              ImageView diceresult26 = new ImageView(diceface26);
              diceresult26.setX(400);
              diceresult26.setY(200);
                     break;
            default:
                     Image diceface27 = new Image("/DiceProject/diceface1.png", true);
              ImageView diceresult27 = new ImageView(diceface27);
              diceresult27.setX(400);
              diceresult27.setY(200);
                     break;
            }


                if((Dice1 > Dice2)){ //if you win
                    Winnings = BetAmount;
                    account1.SetWinBalance(Winnings);
            }
                else if (Dice1 < Dice2) { //you lose
                    Loses = BetAmount;
                    account1.SetLoseBalance(Loses);
                    account1.GetBalance();
                    if (Bankroll <= 0) { //INSERT BANKRUPT.PNG HERE
                    }
                        }
                else if (Dice1 == Dice2) { //tie
              Image ACD = new Image("/DiceProject/RollAgain.png", true);
              ImageView Reroll = new ImageView(ACD); //for some reason, a problem comes up whe i use "Reroll" as the name
              Reroll.setX(400);
              Reroll.setY(200);
                }
                else {
                //How did you even do this?
                }
            }
        });


        StackPane root = new StackPane();
        root.getChildren().add(btn);


        Scene scene = new Scene(root, 500, 500);

        primaryStage.setTitle("Play Dice");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public class Bankroll {
        private double Bankroll;

        Bankroll() {
        Bankroll = 200;
        }
        public double GetBalance(){
        return Bankroll;
        }
        public void SetLoseBalance(double Loses){
        Bankroll = Bankroll - Loses;
        }
        public void SetWinBalance(double Winnings) {
        Bankroll = Bankroll + Winnings;}
    }

    /**
     * @param args the command line arguments
     */


    public static void main(String[] args) {
        launch(args);
    }

}

它应该显示一个与掷骰子一致的图像,但什么也没有发生。有问题的图像在包中(如果有关系,请单击并拖入项目窗口)。我在system.out.print中添加了t,以便显示Dice1和2的结果,这样我就知道这是有效的。

我还需要添加一些东西来使它看起来像吗?我以前从未在JavaFX中使用过实际的图像....总的来说,我对JavaFX是新手。

GetChildren c:\users\ethan c.b的错误消息。Powell\documents\15562\DICE Project\src\diceProject\diceProject.java:220:错误:类、接口或枚举预期的公共静态void main(string[]args){

C:\用户\Ethan C.B.Powell\Documents\15562\DICE Project\src\DICEProject\DICEProject.java:222:错误:预期的类、接口或枚举}2个错误

C:\用户\Ethan C.B.Powell\documents\15562\DICE project\nbproject\build-impl.xml:924:执行此行时出现以下错误:

共有1个答案

云凌
2023-03-14

您永远不会将任何ImageView组件添加到StackPane子级中。您可以简单地添加一个ImageView并根据EventHandler中返回的骰子数更改其图像。

 类似资料:
  • 我想在JavaFX的ImageView中显示图像。图像应该从SQLite数据库中获取,并在场景加载时显示。我使用以下代码片段从数据库获取代码,并在之前创建的ImageView中显示它。但是图像没有按预期显示。我做错了吗?P. S.我测试了改变路径在两个和当读取文件从目录到。但似乎没有什么奏效。但是当我手动将一个图像文件放在src目录中并尝试读取它时,它就像一个魅力。但是我想展示一张从数据库中提取的

  • 我有一个装满图像的文件夹要在我正在创建的游戏中实现,我想在窗口中显示这些。这是我迄今为止的代码。 这将是一个程序在IntelliJ/中从jar运行。“资产”文件夹与此文件位于同一目录中。我没有发现文件路径错误,所以我假设它可以找到图像,但它不会出现在屏幕上,而矩形会出现。 公平警告,我正在从头开始学习JavaFX,我发现没有太多关于事物如何工作的解释,所以这可能是一个愚蠢的问题。

  • 大家好,我是JavaFXFXML的初学者,我正在用FXMLTable view进行测试,但是netbeans在我的代码中没有显示任何错误,我无法运行我的GUI应用程序。 这里是我的fxmldocument.fxml代码。 这是一个fxml控制器代码。 这里是Person类代码。(Person.java) 这是主要的table.java代码。 当我运行我的项目时,GUI没有出现,它显示了许多类似的错

  • 我在Java fx控制器类中有一些代码如下所示。图像没有显示出来。图像就位,没有错误。请引导。 我不能让图像显示出来。我确信fxml和controller类使用了正确的注释。我在类中使用了正确的@fxml,没有变量错误。

  • 我试图在TableView中插入一些值,但它不显示列中的文本,尽管这些列不是空的,因为有三行(与我在TableView中插入的条目数量相同)可单击。 我有一个类“ClientIController”,它是fxml文件的控制器,这些是TableView和TableView的列的声明。 我在initialize()方法中调用了一个名为loadTable()的函数,该函数将内容添加到TableView中

  • 我尝试了一切,但图像不会显示,我试图缩小图像,但没有用,我试图改变路径,我试图更改图像的位置,但没有帮助,我试图在互联网上搜索,但什么都没有。 我看到的只是空白的图形用户界面,没有文本和图像。如果你能帮我,你会帮我一个大忙。 代码如下: