编辑问题以包括所需的行为、特定的问题或错误,以及重现问题所需的最短代码。这将帮助其他人回答这个问题。
我将非常感谢您的帮助,我正在尝试创建JavaFX应用程序,我想开始在画布面板上创建一些东西,代码正在编译但没有效果,在我看来,画布面板视图没有刷新,可能一些规范会建议我忘记什么,我在整个类中,在代码下面是场景生成器的窗口结构和项目结构。
[![package com.example.rpgfxmaven;
import javafx.animation.AnimationTimer;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.AnchorPane;
import javafx.scene.media.MediaPlayer;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;
import java.io.IOException;
public class GameControler{
final int oryginalnyRozmiarLudzika = 16; // 16x16 tile
final int skala = 3;
final int rozmiarLudzika = skala * oryginalnyRozmiarLudzika;
final int dlugoscPlanszy = 20;
final int szerokoscPlanszy = 15;
final int dlugoscEkranu = rozmiarLudzika*dlugoscPlanszy;
final int szerokoscEkranu = rozmiarLudzika*szerokoscPlanszy;
@FXML
private Canvas canvaspane = new Canvas(dlugoscEkranu, szerokoscEkranu);
GraphicsContext content;
public static MediaPlayer mediaPlayer;
public void start(Stage primaryStage) throws IOException {
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("maingame-window.fxml"));
AnchorPane anchorPane= loader.load();
anchorPane.setPrefSize(dlugoscEkranu+100, szerokoscEkranu+75);
Scene scene = new Scene(anchorPane);
primaryStage.setScene(scene);
primaryStage.show();
content = canvaspane.getGraphicsContext2D();
startGame();
}
public void startGame()
{
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(10), e ->run(content)));
timeline.setCycleCount(Timeline.INDEFINITE);
}
public void run(GraphicsContext content) {
content.setFill(Color.BLUE);
content.fillRect(100, 100, rozmiarLudzika,rozmiarLudzika);
}
}
这是错误的:
@FXML
private Canvas canvaspane = new Canvas(dlugoscEkranu, szerokoscEkranu);
绝不应将注入的FXML字段设置为新值。
fxml加载器已经创建了@fxml字段的实例,并将其链接到加载器返回的对象树中。
如果您将字段分配给新值,则新值不会在添加到场景图中的加载对象树中,因此永远不会看到它。只会看到加载器创建的空画布。
除此之外,您的应用程序几乎肯定还有其他问题,但我无法在此详细概述。
问题内容: 我正在寻找某种有关组织应用程序的建议。 当您拥有包含内容选择的主菜单时,请按一个按钮,则获取控制器有两个选择:a)更改当前显示主菜单的内容b)创建一个新场景并将舞台切换到该场景一 你在用什么 有什么最佳实践吗? 目前,我更喜欢a),因为我可以保持事物链接状态栏等,但这是“干净”的方式吗? 问题答案: 首先,需要考虑一些事情: 1)更改场景将取消链接到您附加到该事件处理程序的链接,并且可
在我的项目中,我有一个包含多个值的ComboBox。当我的应用程序开始时,我执行以下操作: 其中是字符串列表。 同时,在应用程序中,可以更改此值。但是,由于我已经将此组合框添加到我的GridPane中,然后在该值更改(gui.columns)时添加到场景中,因此新值没有显示在组合框中。因为我已经添加了旧的gui.course。有没有办法用新的gui.course_P更新createTestButt
问题内容: 我正在尝试创建一个程序来模拟使用Java和JavaFX解决Rubik’s Cube的问题。该场景具有一个文本框,该文本框将以正确的方式显示计算机所做的每一步。文本框旁边有一个展开的多维数据集,其中 应 显示该多维数据集的当前状态。 问题在于,GUI只会更新以显示移动列表,并且在所有进程的最后都显示多维数据集的状态。我已经浏览了文档,该站点上的其他问题,其他站点上的其他问题,但找不到任何
你好,我有一个应用程序有警报,在用户没有响应后,我想刷新警报/再次显示它,但由于某些原因,我没有看到第二个警报,它是空的,像: 我关闭警报,如果它显示,所以我不知道为什么下一个警报是空的。包装应用;
我无法在SceneBuilder(eclipse)中使用GridPane,当我尝试在项目中插入GridPane时,SceneBuilder会在没有提示任何消息的情况下退出。 这就是我在日志文件中找到的:
一天中,我在Visual Studio 2017中的测试资源管理器窗口多次锁定。虽然它不会崩溃,但当受到影响时,我不能运行任何测试,因为右键单击测试时没有任何选项可用.... 我在不同的项目中混合了NUnit和SpecFlow测试。清理和重建解决方案不起作用,测试资源管理器窗口没有更改。尝试使用“NUnit测试(单击运行)”选项也没有任何作用。 解决这个问题的唯一方法是重新启动Visual Stu