【问题标题】:javafx 8 border collapsejavafx 8边框崩溃
【发布时间】:2015-07-06 08:36:25
【问题描述】:

我在编写 JavaFX 8 组件时遇到了一个非常基本的问题,这些组件彼此相邻并且假设有边框。是否有任何标志表明它们融合在一个边界中?

import javafx.geometry.Pos;
import javafx.scene.Parent;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;

public class SettingsList {

    private VBox root;

    private String[] settingsList = new String[]{"set1", "set2", "set3"};

    public SettingsList(){

    }

    public Parent getControl(){
        root = new VBox();
        root.setAlignment(Pos.CENTER);
        root.getStylesheets().add(getClass().getResource("settingList.css").toExternalForm());
        for(String settingName: settingsList){
            Label settingLabel = new Label(settingName);
            settingLabel.getStyleClass().add("setting-label");
            root.getChildren().add(settingLabel);
        }

        return root;
    }
}

【问题讨论】:

  • 你所说的融合在一个边框中究竟是什么意思?在它们相互接触的地方,您只想要一个边框,而不是两个?

标签: java css user-interface javafx


【解决方案1】:

据我所知,不存在与 border-collapse 等效的内容。区别对待第一个:

boolean first = true ; 
for(String settingName: settingsList){
    Label settingLabel = new Label(settingName);
    settingLabel.getStyleClass().add("setting-label");
    if (first) {
        settingLabel.getStyleClass().add("first");
    }
    first = false ;
    root.getChildren().add(settingLabel);
}

然后在 CSS 中

.setting-label {
    -fx-label-padding: 10 ;
    -fx-border-color: black ;
    -fx-border-width: 0 1 1 1 ;
}
.setting-label.first {
    -fx-border-width: 1 ;
}

【讨论】:

  • 是的,这就是我一直在做的事情,直到知道为止,我一直在想是否还有其他选择。谢谢!
猜你喜欢
  • 2020-03-17
  • 2013-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-02
  • 2020-05-16
  • 1970-01-01
相关资源
最近更新 更多