2011-10-25 17 views
0

このコードで私を助けてください、私はラベルに現在の日付を表示しようとしていますが、3つの異なるクラス、つまりメインクラス(AppStart)を使用しています。私はフレーム内にラベルを表示するので、(Swing1)とそれから日付クラス(DateLabel)のラベルを表示する広告内のラベルを作成します。コードを以下に示します。ラベルに日付を表​​示したい

public DateLabel() 
{ 
    Date today = new Date(); 

    //Date format 
    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US); 
    String strDate = df.format(today); 
    setText(strDate); 


} 
} 

import java.awt.*;//used for Gui Developement 
import java.util.*; 
import java.text.*; 
import javax.swing.*;//Used for GUI development 

public class Swing1 extends JFrame 
{ 

JLabel lblWelcome; 
DateLabel myDate; 
Swing1() 
{ 
    JFrame myJF = new JFrame(); 
    myJF.setTitle("CBT Tutorial"); 

    //JLabel Stuff 
    myDate = new DateLabel(); 

    Container c = getContentPane(); 
    c.add(myDate, BorderLayout.NORTH); 


    myJF.setSize(300,300); 
    myJF.show(); 

} 

} 


public class AppStart { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) 
{ 
    new Swing1(); 
} 
} 

答えて

1

DateLabelそうsetTextContainerにカスタムラベルを追加するだけでなく、動作しません、JLabelを拡張する必要があります。

+0

おっとは、そのようも逃しました。それが実際の問題です。 myJFインスタンスには何も追加されていません。 –

+0

おっと、またそれを逃した。あなたは 'BorderLayout'を使いたいと思いますが、そうするためにはスイングを逃してしまいます。 'c.setLayout(new BorderLayout())'を試してください。 – phineas

+0

私のプログラムでは別のアプローチを使用しました。私は 'String date = new SimpleDateFormat(" yyyy-MM-dd hh:mm:ss ")を使用しました。 JLabelラベル=新しいJLabel(日付); 'おそらくそれはあなたの質問よりもトピックに適しています。:P – Handsken

1

Swing1コンストラクタに新しいJFrameを作成する必要はありません。 Swing1はJFrameを拡張し、Swing1インスタンス自体にgetContentPane().add(myDate, BorderLayout.NORTH);を追加するだけです。コンストラクタの最初のステートメントとしてsuper()を呼び出してください(おそらく、ダブルバッファリングなどが必要な場合など)。

+0

それは完璧に働きました。 – oseifrimpong

2

netbeansビジュアルビルダーを使用している人には、私はこれを行うより速い方法を発見しました。

public classname{ 
    Initcomponents(); 
    String date= new Date.toString(); 
    Yourlabelname.setText(date)} 
    } 

は、それが本鎖の1を役に立てば幸い!:-)

関連する問題