- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个创建棋盘的 javafx 程序。但是,当我尝试运行我的程序时,它会在这一行中抛出异常:optionsPane.getChildren().addAll(optionsPane, n_input, grid_display, label, createButton);以下是异常(exception)情况:
Exception in Application start method java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalArgumentException: Children: cycle detected: parent = HBox@ca2959, node = HBox@ca2959 at javafx.scene.Parent$2.onProposedChange(Parent.java:445) at com.sun.javafx.collections.VetoableListDecorator.addAll(VetoableListDecorator.java:234) at com.sun.javafx.collections.VetoableListDecorator.addAll(VetoableListDecorator.java:103) at DD_CheckerBoard.start(DD_CheckerBoard.java:40) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) ... 1 more
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class DD_CheckerBoard extends Application {
Scene scene1, scene2; //2 scenes created to pass from a scene to another scene when create a checkerboard is clicked
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("My Checkerboard");
//Scene 1
HBox optionsPane = new HBox(10);
optionsPane.setAlignment(Pos.CENTER); //sets alignment
TextField n_input = new TextField(); //gets n from the user
TextField grid_display = new TextField(); //only displays n x n
grid_display.setEditable(false);
Label label = new Label("Enter a single number to customize grid size.");
Button createButton = new Button("Create New Checkerboard"); //button to create the new grid for checkerboard
createButton.setOnAction(e-> primaryStage.setScene(scene2)); //calls checkerboard to the scene
optionsPane.getChildren().addAll(optionsPane, n_input, grid_display, label, createButton); //add components
scene1 = new Scene(optionsPane, 300,250); //create scene 1 for optionsPane
//Scene 2
getCheckerBoard(n_input); //create the checkerboard using the input from the user
//SET SCENE
primaryStage.setScene(scene1); // Place in scene in the stage, first scene is for the option pane
primaryStage.show(); // Display the stage;
}
/**
* And this method creates the checkerboard
* @param input n by the user
*/
public void getCheckerBoard(TextField input) {
GridPane checkerboardPane = new GridPane(); //create a grid pane
int n = Integer.parseInt(input.getText()); //parse input n to int
int count = 0; //keep count of rectangles
double s = 70; // side of rectangle
for (int i = 0; i < n; i++) { //create the grid and rectangles
count++; //increment count
for (int j = 0; j < n; j++) {
Rectangle r = new Rectangle(s, s, s, s);
if (count % 2 == 0) r.setFill(Color.BLACK); //put rectangles to assigned colors in order
else r.setFill(Color.WHITE);
checkerboardPane.add(r, j, i); //add components to checkerboard
count++; //increment count
} }
scene2 = new Scene(checkerboardPane); //Create scene 2
}
public static void main(String[] args) throws Exception{
launch(args);
}
}
最佳答案
您正在尝试将 optionsPane
作为子项添加到自身:
optionsPane.getChildren().addAll(optionsPane, n_input, grid_display, label, createButton);
这会导致您收到异常。要解决此问题,只需从子列表中删除 optionsPane
即可:
optionsPane.getChildren().addAll(n_input, grid_display, label, createButton);
但是您也会收到 NumberFormatException
因为您的 Textfield 默认为空:
java.lang.NumberFormatException: For input string: ""
所以你应该为你的TextField
设置一个默认值:
TextField n_input = new TextField("0");
关于java - getChildren().addAll() 上的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55190060/
看下面的代码: public static void main(String[] args) { Group group1 = new Group(); Group g
我正在尝试制作一个创建棋盘的 javafx 程序。但是,当我尝试运行我的程序时,它会在这一行中抛出异常:optionsPane.getChildren().addAll(optionsPane, n_
例如,当我们向 Pane 添加新按钮时,我们需要编写以下代码: StackPane pane = new StackPane(); pane.getChildren().add(new Butto
我创建了一个单独的类来在 JavaFX 中设置网格。类如下: public class Grid { GridPane gp = new GridPane(); //sets grid (10
看下面的代码: public static void main(String[] args) { Group group1 = new Group(); Group g
我对 Java 比较陌生,尤其是 Javafx 和 GUI。我一直在研究这段代码,但我在理解最后一行正在做什么时遇到了一些困难。我知道倒数第二行是将所有组件添加到容器“p”中,但是当您在前面没有容器的
XML: .... PD1 PD2 PD3 ..
我想获取一个元素的所有子元素,包括文本节点。我如何在 MooTools 中执行此操作? mootools.net 上的文档明确指出 getChildren() 不包括文本节点。 最佳答案 您可以使用标
这是我的 xml: 例子: 987 0 F0F8DJH348DJ 46446
好吧,我不确定我是否在正确的地方问这个问题,但我希望这里有人可以帮助我。所以,我是 Java 初学者,我正在尝试制作 JavaFX 应用程序,但我的布局 1“getChildren.addAll(la
当我尝试调用 getChildren() 时在 mediapipeline 上其中运行了我的自定义模块端点我收到此异常: org.kurento.client.internal.server.Prot
为什么有时我们使用 getChildren() add() 而其他时候我们直接使用 add() es: https://docs.oracle.com/javafx/2/get_started/for
此代码不允许在我的窗口中绘制线条...我在 fxml 文件中只有一个简单的 Pane ,其 fx:id 为 hi 用于测试。没有错误,该行根本没有出现。我也用盒子和圆圈试过这个。我真的需要帮助,这是一
我有一个小问题,当我想添加文本字段时,VBOX 的按钮和标签我有一个错误:ObservableList 中的 addAll() 不能应用于: 在这个地方:vBox.getChildren().addA
如果我在 XML 文件上运行以下 python(请参见 Q 底部): import xml.etree.ElementTree as ET tree = ET.parse('C:\\temp\\tes
我清除了所有子项的网格 Pane ,然后再次将子项添加到网格 Pane 中,但它说存在重复项。 public void render(){ boardPane.getChildren().cl
我试图读取我之前在Excel工作表中插入的图像及其位置与此代码,它在我的机器上工作正常,但是当我将代码迁移到另一台电脑时,我在工作表中遇到空指针异常。 getDrawingPatriarch.getC
上下文 我正在为一个小游戏创建一个 GUI。游戏有一个开始屏幕。当玩家点击开始时,舞台场景从菜单场景变为游戏场景。新的游戏场景以 Group 作为父级,并包含一些元素,例如玩家的得分和姓名,所有这些元
我有一个 Group 子类的实例,我正在向其中添加其他 Groups。其中一个组是一个组的子类,它有一个方法 getCollision() .在那种方法中,我正在运行 for each循环检查该组父级
本文整理了Java中com.yahoo.text.XML.getChildren()方法的一些代码示例,展示了XML.getChildren()的具体用法。这些代码示例主要来源于Github/Stac
我是一名优秀的程序员,十分优秀!