import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class NanoTimeframe extends JPanel
{
private static final long serialVersionUID = -6135068834705503622L;
private JLabel lblTime;
private long start = 0L; // 从0毫秒开始
private static long MAXTIME = 5000L; // 5秒后结束
private boolean begin = false;
private JTextField setTime;
public NanoTimeframe()
{
this.lblTime = new JLabel("单击开始");
this.setTime = new JTextField();
System.out.println("1");
this.lblTime.setFont(new Font("Monospaced", Font.BOLD, 60));
this.lblTime.setHorizontalAlignment(SwingConstants.CENTER);
this.lblTime.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
{
MAXTIME = Long.parseLong(setTime.getText());
begin = true;
lblTime.setText(timeStr(start));
}
});
setLayout(new BorderLayout());
add(lblTime, BorderLayout.CENTER);
add(setTime, BorderLayout.NORTH);
}
private String timeStr(long time)
{
StringBuffer timeBuffer = new StringBuffer();
long miu = time / (60 * 1000);
time -= miu * 60 * 1000;
long se = time / 1000;
time -= se * 1000;
long mi = time % 1000;
timeBuffer.append(miu < 10 ? ("0" + miu) : miu);
timeBuffer.append(".");
timeBuffer.append(se < 10 ? ("0" + se) : se);
timeBuffer.append(".");
timeBuffer.append(mi < 10 ? ("00" + mi) : (mi < 100 ? ("0" + mi) : mi));
return timeBuffer.toString();
}
@Override
public void paintComponent(Graphics page)
{
if (!begin) return;
super.paintComponent(page);
if (start >= MAXTIME)
{
lblTime.setText("Bomb!!!");
return;
}
start += 1;
lblTime.setText(timeStr(start));
}
public static void main(String [] args){
JFrame jf = new JFrame();
jf.setResizable(false);
jf.setBounds(0, 0, 460, 330);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.add(new NanoTimeframe());
jf.setVisible(true);
}
}
请给分 改得辛苦上面输入毫秒后计时