2017-03-06 19 views
0

コンポーネントの初期化コードをメソッドの色、サイズ、およびテキスト以外のものに設定する以外にも、メソッドの初期化コードを置くことをお勧めしますか?Java Swingコンポーネントの初期化

// frame initialisation 
public void init() 
{ 
    ..... 

    sectors = new JSlider(10,50,12); 
    initSlider(); 

    ..... 
} 

public void initSlider() 
{ 
    sectors.setMinorTickSpacing(1); 
    sectors.setMajorTickSpacing(5); 
    sectors.setSnapToTicks(true); 
    sectors.setPaintLabels(true); 
    sectors.setPaintTicks(true); 
} 
+1

私は個人的には、異なる方法に編成するデータを好みます。他の人は同意しないかもしれない。 –

+2

それ自体はうまくいくようですが、複数回呼び出すことができるので、より良い名前は 'resetSlider()'かその行に沿ったものです。 – UnknowableIneffable

+1

このようなものを別々のメソッドに入れるのは良いことですが、それらのメソッドはほとんど常に 'private'メソッドでなければなりません。コンポーネントの初期化は、そのクラスとそのクラスだけの責任です。 – VGR

答えて

0

これを行うことには何の害もありませんが、心配のないように別のクラスに初期化を移行することをお勧めします。

あなたのフレーム/メインクラスで次に
class MySlider extends JSlider{ 
    public MySlider(){ 
     super(); 
     //init statements here 
    } 
} 

public void init() 
{ 
    ..... 
    sectors = new MySlider(10,50,12); 
    ..... 
} 
+0

実際、例を短くするためにこのシナリオを作成しました。実際には、このinitメソッドはJPanelのものです。 –

0

はい、コードを管理して読みやすくすることができます。これが私の考えですが、終わりにはプログラマのスタイルに依存します。

関連する問題