返回信息流感觉很难把问题描述清楚,就是要编一个倒计时器需要实现界面化,直接上程序吧,编的很差,希望各位大神指导!
package ch02;
import javax.swing.*;
import java.awt.event.*;
import java.util.Scanner;
class MyFrame extends JFrame{//定义JFrame子类
JLabel labelName=new JLabel("请输入计时时长(格式00:00:00):");//标签
JTextField fieldName=new JTextField(20);//20列宽的文本框
JButton buttonPress=new JButton("确认");//按钮
// JTextArea areaShow=new JTextArea(1,20);//1行20列的文本区
JPanel pan=new JPanel();//面板
public MyFrame(){
this.setTitle("倒计时器的界面");
this.setBounds(100,200,250,140);//设置窗框位置和大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭操作
initialize();
this.setVisible(true);
}
public void initialize(){
pan.add(labelName);//面板添加标签
pan.add(fieldName);
pan.add(buttonPress);
// pan.add(areaShow);
this.add(pan);//窗框添加面板
buttonPress.addActionListener(new ActionListener(){//按钮动作事件处理
public void actionPerformed(ActionEvent e){
// areaShow.setText(fieldName.getText()+",您好!");
// JOptionPane.showMessageDialog(null, fieldName.getText()+",您好");//使用消息框显示结果
Scanner scan=new Scanner(System.in);
//System.out.print("请输入计时时长(格式00:00:00):");
//String t=scan.next();//读入时间
//截取时,分,秒,并把字符型转换成整形
String t=fieldName.getText();
String h=t.substring(0,2);
int hh=Integer.parseInt(h);
String m=t.substring(3,5);
int mm=Integer.parseInt(m);
String s=t.substring(6,8);
int ss=Integer.parseInt(s);
//循环输出
for(;hh>-1;hh--)
{
for(;mm>-1;mm--)
{for(;ss>-1;ss--)
{if(hh<10) JTextField.setText("0"+hh+":");
else JTextField.setText(hh+":");
if(mm<10) JTextField.setText("0"+mm+":");
else JTextField.setText(mm+":");
if(ss<10) System.out.println("0"+ss);
else JTextField.setText(ss);
//延时一秒
try{
Thread.sleep(1000);
}catch(InterruptedException b){b.printStackTrace();}
}
ss=59;
}
mm=59;
}
}
}
);
}
}
public class Timer {
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();
}
}
问题就出在如何在面板上输出时间,JTextField.setText()对参数貌似要求是静态的,求指导!
这是一条镜像帖。来源:北邮人论坛 / java / #28829同步于 2014/3/14
Java机器人发帖
java新学者,请教关于界面的小问题
xiemoyuan
2014/3/14镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。