2011-10-25 89 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必須擴展JLabel,否則setText不會因爲添加自定義標籤的Container正常工作。

+0

哎呀,錯過了爲好。這是實際的問題。 myJF實例沒有添加任何內容。 –

+0

哎呀,也錯過了。你想使用'BorderLayout',但是你錯過了讓swing來這樣做。嘗試'c.setLayout(新的BorderLayout())'。 – phineas

+0

我在程序中使用了不同的方法。我用'String date = new SimpleDateFormat(「yyyy-MM-dd hh:mm:ss」)。format(new Date()); JLabel標籤=新的JLabel(日期);'但它可能更適合你的話題而不是你的問題..:P – Handsken

1

無需在Swing1構造函數中創建新的JFrame。 Swing1擴展了JFrame,只是在Swing1實例本身上執行getContentPane().add(myDate, BorderLayout.NORTH);。確保在構造函數中調用super()作爲第一條語句,也許使用合適的參數集(例如,如果您需要雙緩衝等)。

+0

對,它完美的工作。謝謝。 – oseifrimpong

2

對於任何使用netbeans visual builder的人來說,我發現了一個更快的方法來做到這一點。

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

希望它可以幫助擱淺的!:-)

相關問題