我已经为日期时间写了这个函数。现在我想在每个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中显示日期时间。
答案 0 :(得分:2)
您创建的类与GUI无关,无法在JFrame中使用。所以你需要做一些事情:
创建一个" DateTimePanel"包含两个JLabels
,一个用于显示日期,另一个用于显示时间。您可以使用标签的setText(...)
方法设置要显示的字符串,而不是使用System.out.println(...)。
然后,您可以创建DateTimePanel的实例,并根据需要将其添加到GUI中。
当然,当前时间会不断变化,因此您可能需要更新时间。在这种情况下,您将使用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的基础知识。