2014-07-02 56 views
0

所以我想创建一个JSpinner的子类,这样我就可以隐藏所有的配置。问题是当我把这个对象放在JFrame上时,我得到了UI找不到的错误。创建JSpinner的一个子类错误

我无法找出我错过..

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); 
    } 
} 
+1

你如何在JFrame中设置'this'对象? –

回答

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); 
    } 
} 
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