(由于我是新来的,请原谅在提问/排版方面有什么错误)
请注意,我还不能在这里张贴代码,并且FXML代码不值得发布,对吗?另外,我之前的GUI编程经验很少.我首先使用了JavaFX 8,因为我使用了Java,并且从许多方面听说了FX >> Swing。
我正在尝试创建一个GUI,它允许用户(通过鼠标操作事件)输入NumberLink拼图编号,然后在网格中显示该谜题,并具有绘制路径的功能,并将其撤消。这与尼可利的Numberlink中的功能几乎完全相同。这个谜题很有趣,这就是规则。UI的目标是让用户通过绘制线等来交互地解决难题,就像在Nikoli的网站上一样。求解者将是以后的加法。
Stage,其中设置Scene提示用户输入行和列(以获取拼图的大小),GridPane ),用户单击这些方块将数字输入到正方形中。如果我使用TextField和鼠标侦听器并将信息存储在网格中,则此阶段没有问题.下一个阶段是我被困在.除非我知道怎么做,否则我不能取得进展.VLineTo和HLineTo类是合适的)。但我不确定,也找不到其他选择)请帮忙.因此,考虑到这一点,我制作了基于FXML的虚拟gui布局来测试我的想法是否有效.我也不能让GridPane在上面画线(意思是,我不能把像HLineTo这样的线条对象放在网格窗格的顶部).还有其他方法来做我需要做的吗?我还想在一个网格中创建多个Canvas对象(每个正方形都是自己的画布),将数字作为Text对象,在网格顶部设置一个透明的画布,并将它们都放在StackPane上,但这样StackPane的子代就不会同步。
请帮我指出正确的方向,谢谢(告诉我,如果我错过了一些基本的东西,我认为我是)。
发布于 2014-08-08 22:28:08
您可以将GridPane封装在AnchorPane中,然后使用getChildren().add(Node node)。
假设您的控制器已经定义了<AnchorPane fx:id="anchorpane"...>和implements Initializable
@FXML private AnchorPane anchorpane;
@Override
public void initialize(URL location, ResourceBundle resources) {
Line line = new Line(double startX, double startY, double endX, double endY);
anchorpane.getChildren.add(line);
}注意到:行实际上应该依赖于鼠标事件,所以它实际上不应该在初始化方法中;但是它应该帮助您开始您想要做的事情。
HTH
https://stackoverflow.com/questions/25171805
复制相似问题