如何制作dateTime函数并使用每个JFrame?

时间:2014-07-16 15:10:37

标签: java swing awt

我已经为日期时间写了这个函数。现在我想在每个JFrame中使用。 我想在main(First.java)中为日期时间声明一个函数(方法),我想在另外几个JFrame中调用该方法(如JFrame1.java,Jframe2.java ....)

import java.util.*;

public class TestDate {

    int day, month, year;

    public TestDate( ) {
    }

    void TestData(){
        int day, month, year;
        int second, minute, hour;
        GregorianCalendar date = new GregorianCalendar();

        day = date.get(Calendar.DAY_OF_MONTH);
        month = date.get(Calendar.MONTH);
        year = date.get(Calendar.YEAR);

        second = date.get(Calendar.SECOND);
        minute = date.get(Calendar.MINUTE);
        hour = date.get(Calendar.HOUR);

        System.out.println("Current date is  "+day+"/"+(month+1)+"/"+year);
        System.out.println("Current time is  "+hour+" : "+minute+" : "+second);
    }
}

我有两个JFrame(Jframe1.java和JFrame2.java) 我想使用Jlabel在这两个JFrame中显示日期时间。

1 个答案:

答案 0 :(得分:2)

您创建的类与GUI无关,无法在JFrame中使用。所以你需要做一些事情:

  1. 创建一个" DateTimePanel"包含两个JLabels,一个用于显示日期,另一个用于显示时间。您可以使用标签的setText(...)方法设置要显示的字符串,而不是使用System.out.println(...)。

  2. 然后,您可以创建DateTimePanel的实例,并根据需要将其添加到GUI中。

  3. 当然,当前时间会不断变化,因此您可能需要更新时间。在这种情况下,您将使用Swing Timer来不断更新标签。以下是使用面板和计时器的简单示例:

    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.Timer;
    
    public class TimerTime extends JPanel implements ActionListener
    {
        private JLabel timeLabel;
    
        public TimerTime()
        {
            timeLabel = new JLabel( new Date().toString() );
            add( timeLabel );
    
            Timer timer = new Timer(1000, this);
            timer.setInitialDelay(1);
            timer.start();
        }
    
        @Override
        public void actionPerformed(ActionEvent e)
        {
            //System.out.println(e.getSource());
            timeLabel.setText( new Date().toString() );
        }
    
        private static void createAndShowUI()
        {
            JFrame frame = new JFrame("TimerTime");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add( new TimerTime() );
            frame.setLocationByPlatform( true );
            frame.pack();
            frame.setVisible( true );
        }
    
        public static void main(String[] args)
        {
            EventQueue.invokeLater(new Runnable()
            {
                public void run()
                {
                    createAndShowUI();
                }
            });
        }
    }
    

    我建议您首先阅读Swing Tutorial了解创建GUI的基础知识。