2011-10-25 67 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)} 
    } 

希望它可以帮助搁浅的!:-)

相关问题