如何使用java.text.Format为对象构建自定义格式器?

时间:2018-07-13 09:23:19

标签: java javafx

我有以下课程,Screen已经定义了toString()

public class ScreenTime {

    Screen screen;
    int filmId;
    Date date;
    Time startTime;
    Time endTime;
}

我要做的就是使用java.text.Format创建一个自定义格式器,以便在上下文中使用时仅获取Screen.name

ScreenFormat fmt = new ScreenFormat("name");
String result = fmt.format(myScreenTimeObject);

我正在为CellFactory使用自定义TableView,如下所示。

colStart.setCellFactory(new ColumnFormatter<ScreenTime, Time>(new SimpleDateFormat("HH:mm")));

新格式化程序的目的是在CellFactory创建过程中使用。

1 个答案:

答案 0 :(得分:0)

我做到了,如下。

public class ScreenFormat extends Format {

    private String pattern;

    public ScreenFormat(String pattern) {
        this.pattern = pattern;
    }

    @Override
    public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) {
        switch (pattern) {
        case "name":
            Screen screen = (Screen) obj;
            toAppendTo.append(screen.getName());
            break;
        }

        return toAppendTo;
    }

    @Override
    public Object parseObject(String source, ParsePosition pos) {
        return null;
    }
}