BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #28829同步于 2014/3/14
Java机器人发帖

java新学者,请教关于界面的小问题

xiemoyuan
2014/3/14镜像同步0 回复
感觉很难把问题描述清楚,就是要编一个倒计时器需要实现界面化,直接上程序吧,编的很差,希望各位大神指导! 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()对参数貌似要求是静态的,求指导!
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。