创建JSpinner错误的子类

时间:2014-07-02 15:44:41

标签: java swing date jspinner

所以我想创建一个JSpinner的子类,以便隐藏所有配置。问题是,当我将此对象放在JFrame上时,我发现UI未找到错误。

我无法找出我错过的东西..

public class Time extends JSpinner {

    public Time() {
        super();
        SpinnerDateModel SpinnerModel = new SpinnerDateModel();
        this.setModel(SpinnerModel);

        JSpinner.DateEditor dateEditor = new JSpinner.DateEditor(this, "hh:mm a");
        this.setEditor(dateEditor);
    }
}

2 个答案:

答案 0 :(得分:2)

为我工作。试试这样:

class Test {
    public static void main(String[] f) {
        JFrame myFrame = new JFrame();
        myFrame.add(new Time());
        myFrame.setVisible(true);
    }
}

class Time extends JSpinner {

    public Time() {
        super();
        SpinnerDateModel SpinnerModel = new SpinnerDateModel();
        this.setModel(SpinnerModel);

        JSpinner.DateEditor dateEditor = new JSpinner.DateEditor(this, "hh:mm a");
        this.setEditor(dateEditor);
    }
}

答案 1 :(得分:2)

  

我想创建JSpinner的子类,以便隐藏所有配置。

在此背景下扩展JSpinner很难证明是正确的。作为替代方案,请考虑使用factory method来创建和配置微调器。

private JSpinner createSpinner() {
    JSpinner spinner = new JSpinner();
    SpinnerDateModel SpinnerModel = new SpinnerDateModel();
    spinner.setModel(SpinnerModel);
    JSpinner.DateEditor dateEditor = new JSpinner.DateEditor(spinner, "hh:mm a");
    spinner.setEditor(dateEditor);
    return spinner;
}

审查了一个相关的例子here;有关详细信息,请参阅edit history