0
我已經自定義了一個組合框來顯示選擇列表中的線條類型,但按鈕只顯示文本。我怎樣才能在按鈕中繪製選定的線條類型?JavaFX組合框選擇線條樣式
ComboBox<String> cmb = new ComboBox<String>();
cmb.getItems().addAll("-fx-stroke-dash-array: 12 2 4 2;", "-fx-stroke-dash-array: 2 2;");
cmb.setCellFactory(new Callback<ListView<String>, ListCell<String>>()
{
@Override public ListCell<String> call(ListView<String> p)
{
return new ListCell<String>()
{
private final Group group;
private final Line line;
{
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
group = new Group();
group.getChildren().add(new Rectangle(100, 30, Color.WHITE));
line = new Line(0, 15, 100, 15);
group.getChildren().add(line);
}
@Override protected void updateItem(String style, boolean empty)
{
super.updateItem(style, empty);
if(style != null && !empty)
{
line.setStyle(style);
setGraphic(group);
}
}
};
}
});
這裏是如何呈現的:不是樣式文本「-fx衝程...」,我怎麼能解決這個問題
我想顯示所選行樣本?
在選擇列表中總是有一個額外的空間在行左邊,是可以擺脫這個空間?
在ComboBox javadoc的最開始可能會找到這些信息:http://docs.oracle.com/javafx/2/api/javafx/scene/control/ComboBox.html –
在閱讀「有關將節點插入組合框項目列表的警告「 –