62,614
社区成员
发帖
与我相关
我的任务
分享
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class test2 {
protected Shell shell;
/**
* Launch the application
* @param args
*/
public static void main(String[] args) {
try {
test2 window = new test2();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window
*/
public void open() {
final Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
/**
* Create contents of the window
*/
protected void createContents() {
shell = new Shell();
final GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 2;
shell.setLayout(gridLayout);
shell.setSize(500, 375);
shell.setText("SWT Application");
final Label label = new Label(shell, SWT.NONE);
label.setLayoutData(new GridData(245, SWT.DEFAULT));
label.setText("Label");
final Button button = new Button(shell, SWT.NONE);
button.addMouseListener(new MouseAdapter() {
public void mouseDown(final MouseEvent e) {
shell.getDisplay().asyncExec(new Runnable(){
public void run(){
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
Calendar startCalendar = Calendar.getInstance();
//label.setText("死亡时间:" + dateFormat.format(startCalendar.getTime()));
Calendar now ;
long startTime = startCalendar.getTime().getTime(); // 获得开始时候的那个时间点
long endTime = startTime + 30 * 60 * 1000; // 从开始时刻开始 加半小时
long nowTime, leftTime, leftSec, leftMin;
int ii = 0;
while(true){
now = Calendar.getInstance();
nowTime = now.getTime().getTime();
leftTime = endTime - nowTime;
leftSec = leftTime / 1000;
leftMin = leftTime / (60 * 1000);
label.setText(leftSec+"秒," + leftMin+"分");
if(leftSec == 0)
{
label.setText("请从新记录时间!");
break;
}
try
{
Thread.sleep(1000);
}
catch(InterruptedException e1)
{
e1.printStackTrace();
}
}
}
});
}//1
});
button.setText("button");
//
}
}
Display.getDefault().asyncExec(new Runnable()
{
public void run()
{
label.setText(leftSec + "秒," + leftMin + "分");
}
});
package craky;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class Test2
{
protected Shell shell;
/**
* Launch the application
* @param args
*/
public static void main(String[] args)
{
try
{
Test2 window = new Test2();
window.open();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* Open the window
*/
public void open()
{
final Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while(!shell.isDisposed())
{
if(!display.readAndDispatch())
display.sleep();
}
}
/**
* Create contents of the window
*/
protected void createContents()
{
shell = new Shell();
final GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 2;
shell.setLayout(gridLayout);
shell.setSize(500, 375);
shell.setText("SWT Application");
final Label label = new Label(shell, SWT.NONE);
label.setLayoutData(new GridData(245, SWT.DEFAULT));
label.setText("Label");
final Button button = new Button(shell, SWT.NONE);
button.addMouseListener(new MouseAdapter()
{
public void mouseDown(final MouseEvent e)
{
new Thread()
{
public void run()
{
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
Calendar startCalendar = Calendar.getInstance();
// label.setText("死亡时间:" +
// dateFormat.format(startCalendar.getTime()));
Calendar now;
long startTime = startCalendar.getTime().getTime(); // 获得开始时候的那个时间点
long endTime = startTime + 30 * 60 * 1000; // 从开始时刻开始
// 加半小时
long nowTime, leftTime;
int ii = 0;
while(true)
{
now = Calendar.getInstance();
nowTime = now.getTime().getTime();
leftTime = endTime - nowTime;
final long leftSec = leftTime / 1000;
final long leftMin = leftTime / (60 * 1000);
Display.getDefault().asyncExec(new Runnable()
{
public void run()
{
label.setText(leftSec + "秒," + leftMin + "分");
}
});
if(leftSec == 0)
{
Display.getDefault().asyncExec(new Runnable()
{
public void run()
{
label.setText("请从新记录时间!");
}
});
break;
}
try
{
Thread.sleep(1000);
}
catch(InterruptedException e1)
{
e1.printStackTrace();
}
}
}
}.start();
}// 1
});
button.setText("button");
//
}
}