有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java需要一种在listcell(javafx)中应用css的方法

我是JavaFX的新手,对css的了解还不够,这就是为什么我不能做一个可接受的研究并将其发布在这里(通过研究,我相信找到合适的解决方案会更容易)。无论如何,我不是有意重复(我不理解关于在javafx控件上应用css的类似问题的答案)

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

Listview with listcells

我的问题是,我找不到一种方法来设置最后一个项目的粗体(重点项目,9x17-母亲的小助手)

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


共 (1) 个答案

  1. # 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不是最美妙的事情,但它非常快,我想不出其他方法

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

    干杯,
    劳伦兹