java如何添加多个HBox?
我最近开始使用JavaFX,但我在这方面遇到了麻烦
我的任务是创建一个GUI应用程序,当用户通过JavaFX用户界面输入房产的实际价值时,该应用程序将显示评估值和房产税
但出于某种原因,它没有按我想要的方式工作。当我在“场景”部分键入“对象”时,它会打印出:
“java:不兼容类型:javafx.scene.layout.HBox无法转换为double”
如何在一个场景中显示多个HBox
本节说明
编写代码,为实际值实例化控件。然后,编写创建HBox布局容器的代码,并将创建的控件放在其中 HBox。HBox中的控件之间应该有10个像素的间距。设置 HBox容器与中心对齐。 编写用于实例化评估值输出标签控件的代码。 然后,编写创建HBox布局容器的代码,并放置 你在HBox内部创建的。将HBox容器的对齐设置为左中。 编写实例化物业税输出标签控件的代码。然后 编写创建HBox布局容器的代码,并放置所需的控件 在HBox内部创建。将HBox容器的对齐设置为左中。 编写用于实例化calcButton控件的代码。然后,写 创建HBox布局容器并放置所需控件的代码 在HBox内部创建。将HBox容器的对齐设置为中心
我的代码(请忽略按钮部分,我还没有完成)
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class PropertyTax2 extends Application {
@Override
public void start(Stage stage) throws Exception {
Label actualValue1 = new Label("Actual Value:");
TextField input = new TextField();
HBox actualValue2 = new HBox(10);
actualValue2.setAlignment(Pos.CENTER);
actualValue2.getChildren().addAll(actualValue1, input);
Label assessmentValue1 = new Label("Assessment value:");
Label propertyTax1 = new Label("Property tax:");
HBox assessmentValue2 = new HBox();
assessmentValue2.setAlignment(Pos.CENTER_LEFT);
assessmentValue2.getChildren().addAll(assessmentValue1);
HBox propertyTax2 = new HBox();
propertyTax2.setAlignment(Pos.CENTER_LEFT);
propertyTax2.getChildren().addAll(propertyTax1);
Scene scene = new Scene(actualValue2, assessmentValue2, propertyTax2);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {launch();}
}
# 1 楼答案
替换
与
得到
java: incompatible types: javafx.scene.layout.HBox cannot be converted to double
的原因是Scene
的一个构造函数是Scene(Parent root, double width, double height)
。所以在根节点之后,其他两个变量应该是双精度的。您试图传递更多节点注意:我建议重命名父节点。我还建议您学习一些教程,以了解何时以及如何使用父节点。这不是一个好的解决方案
我个人喜欢使用前缀,让我知道变量是什么类型的节点。例如
HBox hBoxPropertyTax = new HBox()
或Label lblPropertyTax = new Label("Hello!")