Checkbox 复选框(字符串str)构造函数未定义

Checkbox 复选框(字符串str)构造函数未定义,checkbox,javafx-8,Checkbox,Javafx 8,我试图使用javafx-8创建一个复选框,但是初始化与之相关的标签的构造函数,即CheckBox(String str)没有定义。类似地,库中没有定义setSelected方法和setext方法。 我已经将java更新为最新版本JavaSE8U131,但问题仍然存在。 这是密码 import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx

我试图使用javafx-8创建一个复选框,但是初始化与之相关的标签的构造函数,即CheckBox(String str)没有定义。类似地,库中没有定义setSelected方法和setext方法。 我已经将java更新为最新版本JavaSE8U131,但问题仍然存在。 这是密码

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;import javafx.stage.Stage;
public class CheckBox extends Application {

Stage window;
Scene scene;
Button button;

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

@Override
public void start(Stage primaryStage) throws Exception {
    window = primaryStage;
    window.setTitle("JavaFX");

    //Checkboxes
    CheckBox box1 = new CheckBox("apples");
    CheckBox box2 = new CheckBox("Tuna");
    box2.setSelected(true);

    //Button
    button = new Button("Order Now!");
    button.setOnAction(e -> handleOptions(box1, box2));

    //Layout
    VBox layout = new VBox(10);
    layout.setPadding(new Insets(20, 20, 20, 20));
    layout.getChildren().addAll(box1, box2, button);

    scene = new Scene(layout, 300, 250);
    window.setScene(scene);
    window.show();
}

//Handle checkbox options
private void handleOptions(CheckBox box1, CheckBox box2){
    String message = "Users order:\n";

    if(box1.isSelected())
        message += "Bacon\n";

    if(box2.isSelected())
        message += "Tuna\n";

    System.out.println(message);
}
}

这是错误日志

CheckBox.java:24: error: constructor CheckBox in class CheckBox cannot be applied to given types;
    CheckBox box1 = new CheckBox("apples");
                    ^
  required: no arguments
  found: String
  reason: actual and formal argument lists differ in length
CheckBox.java:25: error: constructor CheckBox in class CheckBox cannot be applied to given types;
    CheckBox box2 = new CheckBox("Tuna");
                    ^
 required: no arguments
 found: String
  reason: actual and formal argument lists differ in length
CheckBox.java:26: error: cannot find symbol
    box2.setSelected(true);
        ^
  symbol:   method setSelected(boolean)
  location: variable box2 of type CheckBox
CheckBox.java:35: error: method addAll in interface ObservableList<E> cannot be applied to given types;
    layout.getChildren().addAll(box1, box2, button);
                        ^
  required: Node[]
  found: CheckBox,CheckBox,Button
  reason: varargs mismatch; CheckBox cannot be converted to Node
  where E is a type-variable:
    E extends Object declared in interface ObservableList
CheckBox.java:46: error: cannot find symbol
    if(box1.isSelected())
           ^
  symbol:   method isSelected()
  location: variable box1 of type CheckBox
CheckBox.java:49: error: cannot find symbol
    if(box2.isSelected())
           ^
  symbol:   method isSelected()
  location: variable box2 of type CheckBox
CheckBox.java:24:error:class CheckBox中的构造函数复选框不能应用于给定的类型;
复选框框1=新复选框(“苹果”);
^
必需:无参数
找到:字符串
原因:实际参数列表和正式参数列表长度不同
java:25:错误:类中的构造函数复选框不能应用于给定的类型;
复选框框2=新复选框(“金枪鱼”);
^
必需:无参数
找到:字符串
原因:实际参数列表和正式参数列表长度不同
CheckBox.java:26:错误:找不到符号
框2.选择的设置(正确);
^
符号:方法setSelected(布尔值)
位置:复选框类型的变量box2
CheckBox.java:35:错误:接口ObservableList中的方法addAll不能应用于给定类型;
layout.getChildren().addAll(框1、框2、按钮);
^
必需:节点[]
找到:复选框,复选框,按钮
原因:varargs不匹配;无法将复选框转换为节点
其中E是一个类型变量:
E扩展接口ObservableList中声明的对象
CheckBox.java:46:错误:找不到符号
if(box1.isSelected())
^
符号:方法isSelected()
位置:复选框类型的变量box1
CheckBox.java:49:错误:找不到符号
if(box2.isSelected())
^
符号:方法isSelected()
位置:复选框类型的变量box2
我正在使用EclipseIDE,但这也不是问题,因为我已经尝试过通过ubuntu的shell编译它。 我应该如何纠正这一点?
提前谢谢

复选框是您的类名,因此重命名您的类名并导入javafx复选框

import javafx.scene.control.CheckBox;
或者像那样使用完全限定的名称

javafx.scene.control.CheckBox box1 = new javafx.scene.control.CheckBox("apples");
javafx.scene.control.CheckBox box2 = new javafx.scene.control.CheckBox("Tuna"); 
在handleOptions()方法中


复选框是您的类名,因此重命名您的类名并导入javafx复选框

import javafx.scene.control.CheckBox;
或者像那样使用完全限定的名称

javafx.scene.control.CheckBox box1 = new javafx.scene.control.CheckBox("apples");
javafx.scene.control.CheckBox box2 = new javafx.scene.control.CheckBox("Tuna"); 
在handleOptions()方法中


您自己的类被称为
CheckBox
,这是一个制造麻烦的方法。。。使用其他名称,或者,如果您坚持将其用作自己的类名称,则必须使用完全限定的名称
javafx.scene.control.CheckBox=new javafx.scene.control.CheckBox(“…”)。您自己的类称为
CheckBox
,这是一个制造麻烦的方法。。。使用其他名称,或者,如果您坚持将其用作自己的类名称,则必须使用完全限定的名称
javafx.scene.control.CheckBox=new javafx.scene.control.CheckBox(“…”)