如何在javafx中加粗并更改tableview项或行的字体大小?

时间:2018-06-07 12:38:26

标签: javafx-2

在我的项目中,我使用的是javafx,其中有一个TableView,其中有四列,即sourcetargetscoredate我希望列中的单个单词或整行可以是粗体或斜体,也可以更改字体大小。

public void readtextfile(String data) //data contains the location of the file
    {

        data1 = FXCollections.observableArrayList();
        tab = new Tab("new" + (tabPaneTableview.getTabs().size() + 1));//create a new tab every time loaddatabase() is called
        tabPaneTableview.getTabs().add(tab);//tab is added in tabpane
        tabPaneTableview.getSelectionModel().select(tab);//the particular tab is selected
        tv_new = new TableView<>();
        tc_id = new TableColumn<File, Integer>("Id");
        tc_source = new TableColumn<File, String>("Source");
        tc_target = new TableColumn<File, String>("Target");
        tc_score = new TableColumn<File, String>("Score");
        // tcUsername=new TableColumn<File,String>("Creation User");
        //tcCurrentdate=new TableColumn<File,String>("Date/Time");
        tcNote = new TableColumn<File, String>("Note");
        tcStatus = new TableColumn<File, String>("Status");
        //tcConfirm=new TableColumn<File,String>("Confirm");
        //tcLock=new TableColumn<File,String>("Lock");
        //tcStatus.getColumns().addAll(tcConfirm,tcLock);
        //tcPostag=new TableColumn<ExcelFile,String>("Pos Tag");
        tv_new.getColumns().addAll(tc_id, tc_source, tc_target, tc_score, tcNote, tcStatus);
        tab.setContent(tv_new);
       tv_new.setPrefHeight(250);
        tv_new.setRowFactory(new Callback<TableView<File>, TableRow<File>>() {
            @Override
            public TableRow<File> call(TableView<File> param) {
                final TableRow<File> row = new TableRow<File>() {
                    @Override
                    protected void updateItem(File row, boolean empty) {
                        super.updateItem(row, empty);
                        if (!empty)
                            styleProperty().bind(Bindings.when(row.selectedProperty())
                                    .then("-fx-font-weight: bold; -fx-font-size: 16;")
                                    .otherwise(""));
                    }
                };

                return row;
            }
        });
    public boolean getSelected() {return selected.get();}
    public BooleanProperty selectedProperty(){return selected;}

我正在使用此代码,但它不会产生所需的结果。

1 个答案:

答案 0 :(得分:0)

也许这不是您正在寻找的解决方案,但这可能会对您有所帮助。

from datetime import datetime
x = '201806070908'
print datetime.strptime(x, '%Y%d%m%I%M%S')

这是我提供的代码片段,因为我认为更改文本字体,只是选择一行有点复杂,因为你必须记住文本是由专注的列或单元格链接的

这段代码必须包含在css文件和sceneBuilder中,或者包含在样式表中的代码中。祝你好运。