请教高手一个Java的类型用法。

CJCO059 2015-02-08 07:39:17
高手,您好:
小弟弄的这个类型的全部代码如下:
package c_port_packageBJTeacher;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.util.Date;
import java.text.SimpleDateFormat;

public class StopWatch extends JFrame {
JButton btnStart, btnStop;

JLabel label;
Timer timer;//计时器
public StopWatch() {
label = new JLabel("00:00:00.000");
btnStart = new JButton("start");
btnStop = new JButton("stop");
final int delay = 100;//时间间隔(动作事件间延迟的毫秒数)
final Date startTime = new Date();//类 Date 表示特定的瞬间,精确到毫秒
final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.S");//时间格式化
final Action taskPerformer = new AbstractAction() {//计时器动作事件的侦听器
public void actionPerformed(ActionEvent evt) {
/*
* System.currentTimeMillis() 返回以毫秒为单位的当前时间; 时区为当前所在的时区 北京时间东8区
* startTime.getTime() 返回自 1970/1/1 00:00:00 GMT 以来此 Date 对象表示的毫秒数; 时区为本初子午线所在的时区可以当做东0区
* 28800000 是8小时的毫秒数 因为前面两种方法取得的毫秒数不在同一时区 所以必须得统一 即减去相差的8个时区的8小时的毫秒数
*
* 这个是该程序的重点难点之处,请参照API中关于日期时间类的介绍
*/
Date d = new Date(System.currentTimeMillis()
- startTime.getTime() - 28800000);
label.setText(sdf.format(d));//将时间格式化后显示在标签上
label.repaint();//重新绘制标签
}
};
btnStart.addActionListener(new ActionListener() {//按钮“start” 事件处理
public void actionPerformed(ActionEvent evt) {
startTime.setTime(new Date().getTime());//重置时间
/*创建一个以taskPerformer为动作侦听器,动作事件延迟为delay毫秒的计时器
*即每隔0.1(delay = 100)秒触发一次事件
* 这个Timer类,具体用法自己查API
*/
timer = new Timer(delay, taskPerformer);
timer.start();//启动计时器
}
});
btnStop.addActionListener(new ActionListener() {//按钮“stop” 事件处理
public void actionPerformed(ActionEvent evt) {
if (timer != null && timer.isRunning())//如果计时器为创建或不在运行状态下
timer.stop();//停止计时器 ;若计时器不存在或没有运行则会抛出异常所以要先判断一下
}
}); Container c = getContentPane();
c.add(label, BorderLayout.NORTH);
c.add(btnStart, BorderLayout.CENTER);
c.add(btnStop, BorderLayout.SOUTH);
} public static void main(String[] args) {
//下面 自己查看API或者baidu或者google,主要在于自己多动手
javax.swing.SwingUtilities.invokeLater(new Runnable() {//AWT 事件指派线程上的异步执行
public void run() {
createAndShowGUI();//作用在于更新组件及刷新计时器
}
}); } private static void createAndShowGUI() {
StopWatch window = new StopWatch();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
}
}

希望高手能够点拨小弟:
如果小弟希望能够通过“代码调用”出来上面类型的计时功能,小弟应该怎么修改上面的类型?
现在看来,这个类型是需要start按钮的点击,之后开启Timer函数的跳动,让程序的计时功能产生。
现在小弟问的是:
上面的代码怎么修改,能够让小弟在一个上层类型中调用这里的类型。
并且,可以以小弟的上层代码调用为本代码类型的起跑时刻?
希望能够有高手帮帮我。
谢谢高手!!
...全文
368 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
普凡 2015-02-09
  • 打赏
  • 举报
回复
还是没太明白楼主的意思哈。不太明确你所说的上层调用是什么意思?是从别的类访问操作你这个类的意思吗? 如果是这个意思,那么上层类持有你本地类的对象引用就可以了。
捏造的信仰 2015-02-09
  • 打赏
  • 举报
回复
简单,将两个按钮的 actionPerformed() 方法的内容提取出来,变成 StopWatch 类的方法即可。
内容概要:本文针对海岛微电网中可再生能源消纳能力不足与运行经济性偏低的问题,提出了一种基于空调负荷与电动汽车(EV)联合虚拟储能的协同优化调度策略。通过挖掘温控负荷(如空调)的热惰性与电动汽车充电的时空灵活性,构建联合虚拟储能系统,有效增强微电网的储能调节能力。研究建立了融合源荷两侧资源的混合整数线性规划(MILP)优化模型,实现发电成本、购电成本与碳排放成本的多目标协同优化,并引入碳排放流理论量化系统各环节的碳排放强度,提升调度方案的低碳性。基于Matlab平台的仿真结果表明,所提策略在削峰填谷、降低系统综合运行成本、提高可再生能源利用率以及减少碳排放方面均具有显著效果,为孤立微电网的能量管理提供了可行的技术路径。; 适合人群:具备电力系统分析、优化调度或综合能源系统研究背景,熟悉Matlab编程与数学建模方法的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于海岛、偏远地区等孤立型微电网的能源优化管理;②探索高比例可再生能源接入下,需求侧灵活资源(如EV、温控负荷)参与电网调峰调频的协同控制机制;③实现微电网系统经济性、低碳性与运行稳定性的多维度优化目标; 阅读建议:建议结合提供的Matlab代码深入理解MILP优化模型的构建与求解过程,重点关注虚拟储能的建模方法、源荷协同调度框架的设计以及碳排放流理论在电力系统中的具体应用,适用于科研复现、论文写作及实际工程方案设计参考。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧