小型java_JAVA小型项目开发

展开全部

程序我已经封装好了,并且e69da5e6ba9062616964757a686964616f31333330353435有使用样例,你照着用应该就差不多了如果说是主窗口的方法,在设置构造函数的时候可以添加一个主窗口类型的参数,实例化的时候在主窗口

new ClockLabel("00:00:05",this);

将主窗口作为参数传进去,然后你就能在时钟类里调用主窗口的方法了。注释的已经很详细了,时钟类代码如下:

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Calendar;

import javax.swing.JDialog;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.Timer;

import com.sun.org.apache.bcel.internal.generic.RETURN;

public class ClockLabel extends JLabel implements ActionListener {

private int hour = 0;

private int min = 0;

private int sec = 0;

private Timer t;

private String timeStr;

private boolean finish = false;// 判断考试是否结束标志位,当值为false的时候考试结束

public ClockLabel() {

// TODO Auto-generated constructor stub

init();

}

public ClockLabel(String timeStr) {//参数为考试时间

init();

setTime(timeStr);

}

private void init() {

t = new Timer(1000, this);// 初始化计时器

}

private boolean begain() {

// 请输入考试时间,例如:\"01:00:00\"

if (!checkStr())

return false;

hour = Integer.parseInt(timeStr.substring(0, 2));

min = Integer.parseInt(timeStr.substring(3, 5));

sec = Integer.parseInt(timeStr.substring(6));

finish = true;//初始化结束标志位

showTime();

return true;

}

private boolean checkStr() {

// 检测考试时间是否符合格式

if (timeStr == null) {

System.out.println("尚未设置考试时间");

return false;

}

if (!timeStr.matches("\\d{2}:\\d{2}:\\d{2}")) {// 格式可以根据你的需求自己修改

System.out.println("输入的时间格式不正确");// 显示在控制台的提示语句

return false;

}

return true;

}

public void setTime(String timeStr) {//设置考试时间

this.timeStr = timeStr;

if (!begain())

System.out.println("时间设置不正确,初始化失败");

}

public boolean timeStart() {// 考试开始方法,返回值为true表示开始成功

if (finish) {//如果考试没有结束,继续开始计时

t.start();

return true;

} else

JOptionPane.showMessageDialog(null, "考试已经结束!");

return false;

}

public boolean timeStop() {// 预设的暂停考试方法,返回值为true表示暂停成功

if (finish) {

t.stop();

return true;

} else

JOptionPane.showMessageDialog(null, "考试已经结束!");

return false;

}

public boolean resetTime() {// 重置考试时间为初始状态的方法

return begain();

}

public void showTime() {

// 在label上显示时间的方法

String str = "";

if (hour < 10)

str += "0";

str += hour + ":";

if (min < 10)

str += "0";

str += min + ":";

if (sec < 10)

str += "0";

str += sec;

this.setText("剩余时间:" + str);

}

@Override

public void actionPerformed(ActionEvent ae) {

// 时钟计时事件

sec--;

if (sec == -1) {

sec = 59;

min--;

if (min == -1) {

min = 59;

hour--;

if (hour == -1) {

t.stop();

finish = false;//考试结束,修改标志位

JOptionPane.showMessageDialog(getParent(), "考试结束!");

//自动交卷方法设置处

return;

}

}

}

if (hour == 0 && min == 5 && sec == 0){

//默认方法是将显示内容设置为提示语句,可自行更改

this.setText("离考试结束还有5分钟!!!");

}

else

showTime();

}

}

使用样例类代码如下:

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class ClockLabelDemo extends JFrame {

private ClockLabel clockLabel;

private JPanel pane1, pane2;

private JButton button1, button2;

public ClockLabelDemo() {

// TODO Auto-generated constructor stub

this.setSize(200, 100);

Toolkit toolkit = Toolkit.getDefaultToolkit();

Dimension scrnsize;

scrnsize = toolkit.getScreenSize();

setLocation(scrnsize.width / 2 - getWidth() / 2,

scrnsize.height / 2 - getHeight() / 2);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

clockLabel = new ClockLabel("00:00:05");// 请输入考试时间,例如:\"01:00:00\"

button1 = new JButton("开始考试");

button2 = new JButton("暂停考试");

pane1 = new JPanel();

pane2 = new JPanel();

pane1.add(clockLabel);

pane2.setLayout(new FlowLayout());

pane2.add(button1);

pane2.add(button2);

this.add(pane1, BorderLayout.CENTER);

this.add(pane2, BorderLayout.SOUTH);

button1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

clockLabel.timeStart();

}

});

button2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

clockLabel.timeStop();

}

});

this.setVisible(true);

}

public static void main(String[] args) {

new ClockLabelDemo().setVisible(true);

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值