我正在尝试制作一个创建棋盘格的javafx程序。但是,当我尝试运行我的程序时,它在这一行中抛出异常:optionsPane.getChildren().addAll(optionsPane,n_input,grid_display,label,createButton);这些是例外情况:
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:对于输入字符串:“”
因此您可能应该为textfield
设置一个默认值:
TextField n_input = new TextField("0");
.getChildren( nested:Boolean, tweens:Boolean, timelines:Boolean, ignoreBeforeTime:Number ) : Array 返回一个数组,其中包含嵌套在此时间轴中的所有动画和时间轴。 //创建一个主时间轴和一个子时间轴: var master = new TimelineLite(), nestedTimeline
Map.addAll()函数将其他所有键值对添加到此映射中。 语法 (Syntax) Map.addAll(Map<K, V> other) 参数(Parameter) other - 表示键值对。 Return Type - 无效 例子 (Example) void main() { Map m = {'name':'Tom','Id':'E1001'}; print('Ma
我有密码 我想知道抛出怎么会发生这种情况。这显然发生在我的应用程序的一个用户身上,但我无法跟踪出了什么问题。
问题内容: 我正在使用struts 2,并且正在尝试使用fop从xml和xsl创建pdf文件。我根据这两个网址http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/examples/embedding/java/embedding/ExampleXML2PDF.java?view=markup和http://justcode.wordpress开发了
我正在写一个代码,它将在ec2中运行,并在s3中为我的帐户列出桶。代码运行良好。然而,当我试图将x射线检测到其中时,x射线痕迹不会出现。我已将x射线依赖项包含在pom.xml 我尝试了很多方法,比如引入配置,但都没用。 有人有一个样本代码将是有益的,因为没有太多的资源,关于它和AWS的官方样本项目不是很清楚。 获取以下异常 2019-04-27 10:46:28.706错误3865---[pool
当然,舞台和场景是在程序初始化时以编程方式创建的。我还想以编程方式添加一个GridPane作为图中所示滚动窗格的子级。在我的程序(特定窗口的控制器)中,我可以获得对滚动窗格的引用: (id srcPaneUsers已通过场景生成器属性窗口的相应字段指定) 但是!!:当我尝试通过控制器的initialize方法的以下行以编程方式添加在运行时创建的新GridPane时: 我收到一个编译时错误,上面写着