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