问题: 众所周知,很多软件会在某一个地方显示当前时间,以方便用户进行操作,今天我贴一段代码实现时间面板的构建和自动更新时间 图例: 代码: package Test.csdn; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.util.Calendar; import java.util.Date; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; public class TimePanel extends JFrame { /** * @Fields serialVersionUID : TODO */ private static final long serialVersionUID = 1L; private static JPanel panel; private static JLabel date; private static JLabel week; public static JLabel time; private static final Calendar NOW = Calendar.getInstance(); private static final int YEAR = NOW.get(Calendar.YEAR); private static final int MONTH = NOW.get(Calendar.MONTH) + 1; private static final int DAY = NOW.get(Calendar.DAY_OF_MONTH); private static final int WEEK = NOW.get(Calendar.DAY_OF_WEEK); private CTime ctime = new CTime(); public TimePanel() { this.setTitle("时间面板测试"); this.setSize(200, 200); this.add(newInstance(), BorderLayout.CENTER); this.setLocationRelativeTo(null); // 居中显示 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭方式 } public static JPanel newInstance() { panel = new JPanel(); panel.setLayout(new GridLayout(0, 1, 10, 8)); panel.add(buildDate()); panel.add(buildWeek()); panel.add(buildTime()); return panel; } // 日期标签 private static JLabel buildDate() { date = buildLabel(getDateOfShow()); return date; } // 星期标签 private static JLabel buildWeek() { week = buildLabel(getDayOfWeek()); return week; } // 当前时间标签 private static JLabel buildTime() { time = buildLabel(""); time.setForeground(Color.RED); return time; } private static JLabel buildLabel(String value) { JLabel label = new JLabel(value); Font font = new Font("", Font.BOLD, 12); label.setFont(font); label.setHorizontalAlignment(SwingConstants.CENTER); return label; } public static String getDateOfShow() { return YEAR + "年" + MONTH + "月" + DAY + "日"; } public static String getDayOfWeek() { String dayOfWeek = ""; switch (WEEK) { case 1: dayOfWeek = "星期日"; break; case 2: dayOfWeek = "星期一"; break; case 3: dayOfWeek = "星期二"; break; case 4: dayOfWeek = "星期三"; break; case 5: dayOfWeek = "星期四"; break; case 6: dayOfWeek = "星期五"; case 7: dayOfWeek = "星期六"; break; } return dayOfWeek; } public static void main(String[] args) { TimePanel test = new TimePanel(); test.setVisible(true); test.ctime.run(); } class CTime extends Thread {// 创建内部类 public void run() {// 重构父类的方法 while (true) { Date date = new Date();// 创建日期对象 time.setText(date.toString().substring(11, 19));// 获取当前时间,并显示到时间标签中 try { Thread.sleep(1000);// 令线程休眠1秒 } catch (InterruptedException e) { e.printStackTrace(); } } } } }