JAVA语言设计实验,帮忙解决追加100分
编写一个秒针计时器,在画面包含一个文本框,显示秒针值,安排一个“开始”按钮和“结束”按钮,点击“开始”按钮则开始计时,点击“结束”按钮停止计时。时间确定可借助日历对象实例方法实现,用get(Calendar.SECOND)方法得到秒值,用get(Calendar.MINUTE)方法得到分值,用get(Calandar.HOUR)方法得到小时值。计算从“开始”到“当前”的时间差即可确定花费的秒数
追问:进一步思考:如何将秒针计时器设计为图形界面,绘制一个圆形秒表,秒表的一圈为60秒,根据花费的时间显示秒针的变化。
答案:import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Calendar;
public class TestCalendar extends Frame implements ActionListener{
public TextField tf = new TextField(20);
public Button b = new Button("开始");
public Button b2 = new Button("清空");
Calendar c = null;
public TestCalendar(){
this.setBounds(400, 300, 200, 100);
this.setLayout(new FlowLayout());
this.add(tf);
this.add(b);
this.add(b2);
b.addActionListener(this);
b2.addActionListener(this);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
});
}
public static void main(String []args){
new TestCalendar();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("开始")){
c = Calendar.getInstance();
b.setLabel("停止");
}else if(e.getActionCommand().equals("停止")){
tf.setText(String.valueOf(getCompare(c,Calendar.getInstance())));
b.setLabel("开始");
}else if(e.getActionCommand().equals("清空")){
tf.setText("");
}
}
public static int getCompare(Calendar c,Calendar c2){
return (c2.get(Calendar.HOUR)-c.get(Calendar.HOUR))*60*60+
(c2.get(Calendar.MINUTE)-c.get(Calendar.MINUTE))*60+
c2.get(Calendar.SECOND)-c.get(Calendar.SECOND);
}
}
呵呵,这么执着啊,NetBeans会用吗?不会告诉我,我教你,哪里不会问我就行
粗略的说下思路吧. 在哪写其实都差不多吧.
// 放两个按钮用的
JPanel pane = new JPanel();
pane.setLayout(new FlowLayout(FlowLayout.CENTER));
// 建立两个按钮放上去
JButton start = new JButton("开始");
JButton end = new JButton("结束");
pane.add(start);
pane.add(end);
// 然后建立一个listener 控制开始和结束
start.addListener(new ActionListener() {
// 控制开始时间
});
end.addListener(new ActionListener() {
// 计算结束时间.
});
// 最后在JTextField 显示出来.用个值传递下就可以了
上一个:Java中提供的常量一般都有什么作用
下一个:编了个java小程序,有问题哦!