【问题标题】:need a way to apply css in a listcell (javafx)需要一种在列表单元(javafx)中应用 css 的方法
【发布时间】:2014-04-15 23:48:50
【问题描述】:

我是 java fx 的新手,我对 css 了解不够,这就是为什么我无法进行可接受的研究并将其发布在这里(通过研究,我相信找到一个更容易适当的解决方案)。无论如何,我并不是要重复(我不明白关于在 javafx 控件上应用 css 的类似问题的答案)。

因此,情况存在于列表视图中(见下图):

我的问题是我找不到将最后一项设置为粗体(重点项目,9x17 - Mother's Little Helper)的方法。

我接受有关执行我所说的最佳方法的建议,即使这是不使用 css 的更好方法,我也会很高兴听到这一点。我只需要一种将最后一项设置为粗体的方法。谢谢。

【问题讨论】:

  • 您真的想要列表中的最后一项加粗还是列表中的选定项要加粗?

标签: java css javafx


【解决方案1】:


如果您想将列表的最后一项设为粗体,请使用以下方法:

listView.getItems().get(list.size()-1).setStyle("-fx-font-weight: bold");

不过,当您稍后向列表中添加项目时,这不会更新列表。
下面是一个工作可更新列表视图的示例:

public class Main extends Application {

    private ObservableList<Label> list;

    @Override
    public void start(Stage primaryStage) {
        try {
            AnchorPane root = new AnchorPane();
            Scene scene = new Scene(root,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();

            ListView<Label> l = new ListView<>();

            root.getChildren().add(l);

            list = l.getItems();
            list.addListener(new ListChangeListener<Label>() {

                @Override
                public void onChanged(
                        javafx.collections.ListChangeListener.Change<? extends Label> c) {
                    for(Label l : list){
                        l.setStyle("-fx-font-weight: normal");
                    }
                    list.get(list.size()-1).setStyle("-fx-font-weight: bold");
                }
            });

            l.getItems().add(new Label("test"));
            l.getItems().add(new Label("test"));

        } catch(Exception e) {
            e.printStackTrace();
        }
    }

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

我知道在列表上运行 foreach 并不是最美妙的事情,但它非常快,我想不出另一种方法。

编辑:也许您应该创建一个更新方法,并且仅在添加了一堆项目并且没有其他项目要立即添加时才调用样式操作。上面示例的问题在于,它在每个新条目之后都会被调用。

干杯,
劳伦兹

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多