我怎样才能让它显示 10,11,12,13.... 而不是...在 javafx 中。我尝试使用所有这些 setPrefWidth, maxSize 但无法工作

Posted

技术标签:

【中文标题】我怎样才能让它显示 10,11,12,13.... 而不是...在 javafx 中。我尝试使用所有这些 setPrefWidth, maxSize 但无法工作【英文标题】:How can I make it show 10,11,12,13.... instead of ... in javafx.I have try to use all those setPrefWidth, maxSize but cannot work 【发布时间】:2021-12-31 04:18:49 【问题描述】:
private HBox buttonBar;
    private ScrollPane questionScroll;
    private ArrayList<Button> btnList = new ArrayList<>();

    public QuestionNavigationBar(int quesNo) 
        questionScroll = new ScrollPane();
        questionScroll.setVbarPolicy(ScrollBarPolicy.NEVER);
        buttonBar = new HBox();
        init(quesNo);

        questionScroll.setFitToWidth(true);
        questionScroll.setContent(buttonBar);
        questionScroll.setPrefWidth(400);
        buttonBar.setStyle("-fx-border-color:cyan; -fx-border-width: 5;");
        buttonBar.setPadding(new Insets(10, 0, 20, 0));
    

    //create buttons for each map entry
    public void init(int quesNo) 
        int counter = 1;
        while (counter <= quesNo) 
            Button btnTmp = new Button(Integer.toString(counter));
            btnTmp.setMaxSize(50, 50);
            btnTmp.setStyle("-fx-background-color: white; ");
            buttonBar.getChildren().add(btnTmp);
            getBtnList().add(btnTmp);
            counter++;
        

    

这是我的输出,所以按钮无法显示两位整数。我已尝试使用所有这些 setPrefWidth、maxSize 但无法正常工作。

【问题讨论】:

不要硬编码大小提示 【参考方案1】:

如果没有足够的空间来显示文本,标签将省略(用点截断文本)。

如果您希望防止这种情况发生,请将最小尺寸设置为首选尺寸。

button.setMinSize(
     Region.USE_PREF_SIZE,
     Region.USE_PREF_SIZE
);

请参阅 javadoc:USE_PREF_SIZE。

学习:Oracle’s layout tutorial.

另外,确保按钮的首选大小没有明确设置,以便布局可以适当地计算它,并且不要将最大大小设置为小于最小大小的值。

【讨论】:

以上是关于我怎样才能让它显示 10,11,12,13.... 而不是...在 javafx 中。我尝试使用所有这些 setPrefWidth, maxSize 但无法工作的主要内容,如果未能解决你的问题,请参考以下文章

Python:Celery,我怎样才能让它在后台运行?

10s动画只有4秒?

在周视图中仅显示特定时间范围

我怎样才能使 iframe 居中但也让它内联显示?

我怎样才能像这样显示QProgressBar?

我有用户添加表单,每个用户都有删除按钮。我怎样才能让它删除它的用户?