请问各位:如何实现倒记时(要显示出来)???
在模拟器上显示出倒记时效果!如何实现?我不太会用TIMERTASK 问题点数:50、回复次数:7Top
1 楼ransion(西方失败)回复于 2005-04-11 17:20:13 得分 10
TIMERTASK要与Timer配合使用
TIMERTASK要实现run方法
然后用Timer的方法schedule来调用
Top
2 楼luv13(史前文物)回复于 2005-04-11 17:38:20 得分 0
没错,可无法显示,何时从写屏幕?能否说具体点,就要思路就成!
多谢各位了!Top
3 楼talenty(残越)回复于 2005-04-11 17:58:41 得分 0
模拟器是什么东西?
我有一个用swt做的application可以么?。。代码给你贴一下Top
4 楼talenty(残越)回复于 2005-04-11 17:59:55 得分 40
BasicFramework.java
package swt.timer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.widgets.*;
public abstract class BasicFramework
{
protected Display display;
protected Shell shell;
protected Menu menuBar, fileSubMenu, helpSubMenu;
protected MenuItem fileSubMenuHeader;
protected MenuItem fileExit, helpSubMenuHeader;
protected MenuItem helpAbout;
public abstract void dispose();
public abstract void displayHelpAboutDialog();
class FileExitListener implements SelectionListener
{
public void widgetSelected(SelectionEvent event)
{
shell.close();
dispose();
}
public void widgetDefaultSelected(SelectionEvent event)
{
shell.close(); dispose();
}
}
class HelpAboutListener implements SelectionListener
{
public void widgetSelected(SelectionEvent event)
{
displayHelpAboutDialog(); }
public void widgetDefaultSelected(SelectionEvent event)
{
displayHelpAboutDialog();
}
}
public BasicFramework(String windowTitle)
{
display = new Display();
shell = new Shell(display);
shell.setText(windowTitle);
menuBar = new Menu(shell, SWT.BAR);
fileSubMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
fileSubMenuHeader.setText("文件(&F)");
fileSubMenu = new Menu(shell, SWT.DROP_DOWN);
fileSubMenuHeader.setMenu(fileSubMenu);
fileExit = new MenuItem(fileSubMenu, SWT.PUSH);
fileExit.setText("退出(&X)");
helpSubMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
helpSubMenuHeader.setText("帮助(&H)");
helpSubMenu = new Menu(shell, SWT.DROP_DOWN);
helpSubMenuHeader.setMenu(helpSubMenu);
helpAbout = new MenuItem(helpSubMenu, SWT.PUSH);
helpAbout.setText("关于(&A)");
fileExit.addSelectionListener(new FileExitListener());
helpAbout.addSelectionListener(new HelpAboutListener());
shell.setMenuBar(menuBar);
}
public void mainLoop(int hSize, int vSize)
{
shell.setSize(hSize, vSize);
shell.setVisible(true);
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
}
}
Top
5 楼talenty(残越)回复于 2005-04-11 18:00:59 得分 0
MainApp.java
package swt.timer;
import java.util.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.*;
public class MainApp extends BasicFramework
{
Timer timer;
Button button;
private class ClockUpdateTask extends TimerTask
{
public void run()
{
Display.getDefault().asyncExec(new Runnable()
{
public void run()
{
button.setText(new Date().toString());
}
});
}
}
public MainApp()
{
super("SWT Example Framework");
shell.setLayout(new FillLayout(SWT.VERTICAL));
button = new Button(shell, SWT.PUSH);
button.addSelectionListener(new SelectionListener()
{
public void widgetSelected(SelectionEvent event)
{
System.out.println( "Button clicked - time is: " + button.getText());
}
public void widgetDefaultSelected(SelectionEvent event)
{
System.out.println( "Button pressed with default key - time is: " + button.getText());
}
});
timer = new Timer();
timer.scheduleAtFixedRate(new ClockUpdateTask(), 0, 1000);
this.mainLoop(300, 200);
System.exit(0);
}
public static void main(String[] args)
{
new MainApp();
}
public void dispose()
{
System.out.println("Disposing of Resources");
}
public void displayHelpAboutDialog()
{
System.out.println("Display Help About Dialog");
}
}
Top
6 楼luv13(史前文物)回复于 2005-04-11 18:05:35 得分 0
谢谢楼上的talenty(残越) ,能说说你的算法吗,其他的到不用,我不是用的ECLIPSE,你的代码没看明白!
Top
7 楼batfree(没有计算机的程序员)回复于 2005-04-12 00:10:49 得分 0
倒计时只不过是自己定一下,过多长时间刷新一下屏幕,将你需要显示的时间显示在上面就是了。你可以自己显示的时间,只要算离某一点的时间还有多少秒就是了。你可以自己定义刷新间隔。Top




