我这段代码java错在哪里了?

我的意图是:
在一个界面上方显示当前动态时间
在下方有4个按钮
我写了以下这段代码,但发现错了,由于知识有限,未能找出,我估计是在监控的那里错了

能不能帮我看看,并修改一下呀、、、感谢。。。
晕,急着给你们分数,却忘了把代码弄上来。。。
唉,现在又不能弄代码,有点多了。。。
怎么办呀?我再开一个,两边都答吧。。。
http://zhidao.baidu.com/question/125467253.html
楼主还真幽默,两边都提,我在两边都培局回答了

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.text.*;
import java.util.*;

public class TimeShow extends JFrame implements Runnable
{
JFrame st;
JLabel time;

public void show()
{
st=new JFrame("时间显示");
time=new JLabel();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

time.setText(sdf.format(new Date()));
JPanel subPanel1=new JPanel();
subPanel1.add(time);

JPanel p2=new JPanel();
p2.setLayout(new GridLayout(1,4));
p2.add(new Button("1"));
p2.add(new Button("2"));
p2.add(new Button ("3"));
p2.add(new Button("4"));

JPanel primary=new JPanel();
primary.add(subPanel1);
primary.add(p2);

st.getContentPane().add(primary);
st.setSize(200,100);
st.setVisible(true);
}

public synchronized void run(){
while(true)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

time.setText(sdf.format(new Date()));
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
time.setText("出错错误,李中伍请重启程序哪或");
}
}

}

public static void main(String arg[])
{
TimeShow st=new TimeShow();
st.setVisible(true);
Thread thread1=new Thread(st);
thread1.start();
}
}