作业帮 > 综合 > 作业

要详细点的哈 我是新手 不太懂哦

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/24 15:35:57
要详细点的哈 我是新手 不太懂哦
// Java core packages
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
// Java extension packages
import javax.swing.*;
import javax.swing.BorderFactory;
import javax.swing.event.*;
public class Clock extends JFrame implements Runnable {
private Calendar calendar;
private int year,month,day,hour,minute,second;
private JSpinner spinner;
private Thread thread;
public Clock()
{
super( "时钟" );
Container container = getContentPane();
container.setLayout( new BorderLayout() );
JPanel panel = new JPanel();
panel.setBorder( BorderFactory.createTitledBorder( "时间" ) );
SpinnerDateModel model = new SpinnerDateModel();
model.setCalendarField( Calendar.HOUR_OF_DAY );
spinner = new JSpinner( model );
JSpinner.DateEditor editor = new JSpinner.DateEditor( spinner,
"hh:mm:ss" );
editor.getTextField().addMouseListener(
new MouseAdapter() {
public void mouseClicked( MouseEvent e )
{
thread = null;
}
}
);
spinner.setEditor( editor );
model.addChangeListener(
new ChangeListener() {
public void stateChanged( ChangeEvent e )
{
SpinnerDateModel source = ( SpinnerDateModel )e.getSource();
calendar.setTime( source.getDate() );
year = calendar.get( Calendar.YEAR );
month = calendar.get( Calendar.MONTH );
day = calendar.get( Calendar.DAY_OF_MONTH );
hour = calendar.get( Calendar.HOUR_OF_DAY );
minute = calendar.get( Calendar.MINUTE );
second = calendar.get( Calendar.SECOND );
GregorianCalendar gCalendar = new GregorianCalendar( year,
month,day,hour,minute,second );
spinner.setValue( gCalendar.getTime() );
repaint();
}
}
);
container.add( panel,BorderLayout.CENTER );
container.add( spinner,BorderLayout.SOUTH );
setSize( 250,280 );
setVisible( true );
setResizable( false );
thread = new Thread( this );
thread.start();
}
要详细点的哈 我是新手 不太懂哦
我也是新手哦
中间大部分代码都是关于图形界面的布局设计的,只有stateChanged( ChangeEvent e ) 函数是动态改变所显示的时间的,好像使用线程实现的.