2014-07-02 80 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