gpt4 book ai didi

user-interface - JavaFX,如何调整复选框的大小?

转载 作者:行者123 更新时间:2023-12-04 06:39:22 25 4
gpt4 key购买 nike

无论使用宽度/高度、minWidth/minHeight 还是 maxWidth/maxHeight,我似乎都无法调整复选框的大小。更改最小宽度似乎只会影响节点填充

package checkboxtest;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class CheckBoxTest extends Application {

@Override
public void start(Stage primaryStage) {

CheckBox checkBoxResize = new CheckBox("Resize");
checkBoxResize.setMinWidth(300);
checkBoxResize.setMinHeight(300);

CheckBox checkBoxNoResize = new CheckBox("No Resize");

StackPane root = new StackPane();
root.getChildren().add(checkBoxResize);
root.getChildren().add(checkBoxNoResize);

Scene scene = new Scene(root, 300, 250);

primaryStage.setTitle("Hello Checkbox!");
primaryStage.setScene(scene);
primaryStage.show();
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}

}

最佳答案

复选框中的“框”和“标记”(即复选标记或勾号)由 CSS 确定。两者都被渲染为带有填充的区域以确定它们的大小;该标记使用 SVG 形状呈现复选标记。因此,要更改大小,您需要更改应用于这些的填充。

默认值,来自 modena.css , 是

.check-box > .box {
/* ... */
-fx-padding: 0.166667em 0.166667em 0.25em 0.25em; /* 2 2 3 3 */
}
.check-box > .box > .mark {
/* ... */
-fx-padding: 0.416667em 0.416667em 0.5em 0.5em; /* 5 5 6 6 */
-fx-shape: "M-0.25,6.083c0.843-0.758,4.583,4.833,5.75,4.833S14.5-1.5,15.917-0.917c1.292,0.532-8.75,17.083-10.5,17.083C3,16.167-1.083,6.833-0.25,6.083z";
}

所以要将大小增加 12 倍,您可以使用:

.big-check-box > .box {
-fx-padding: 2em 2em 3em 3em ;
}
.big-check-box > .box > .mark {
-fx-padding: 5em 5em 6em 6em;
}

以下 SSCCE,在文件“big-check-box.css”中包含上述 CSS(第二个代码块):

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class BigCheckBox extends Application {

@Override
public void start(Stage primaryStage) {
CheckBox checkBox = new CheckBox("Regular");
CheckBox bigCheckBox = new CheckBox("Big");
bigCheckBox.getStyleClass().add("big-check-box");
VBox root = new VBox(5, checkBox, bigCheckBox);

root.setPadding(new Insets(20));
Scene scene = new Scene(root);
scene.getStylesheets().add("big-check-box.css");
primaryStage.setScene(scene);
primaryStage.show();
}

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

给予

enter image description here

关于user-interface - JavaFX,如何调整复选框的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39078867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com