关于Java的小问题,求高手解答 程序如下
packageFont;importjava.applet.*;importjava.awt.*;importjava.awt.event.*;importjava.te...
package Font;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.Date;
import javax.swing.*;
public class ffontchooser extends Applet{
/**这是个很简单的显示并不断更新时间的小程序,可是为什么老是运行不起来呢?**/
JButton button;boolean isActive=true;
JTextField text;SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MMM-dd-hh-mm-ss");
public void init(){add(BorderLayout.CENTER,text=new JTextField(20));
add(BorderLayout.SOUTH,button=new JButton("开始"));
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==button){
while(isActive){showtime();try {
Thread.sleep(1000);/**问题就是为什么Applet老是显示不出更新时间呢?求高手解答**/
} catch (InterruptedException e) {}
}}}
});
}
public void stop(){isActive=false;}
public void showtime(){
Date d=new Date(); String s=sdf.format(d);
text.setText(s);
}
} 展开
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.Date;
import javax.swing.*;
public class ffontchooser extends Applet{
/**这是个很简单的显示并不断更新时间的小程序,可是为什么老是运行不起来呢?**/
JButton button;boolean isActive=true;
JTextField text;SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MMM-dd-hh-mm-ss");
public void init(){add(BorderLayout.CENTER,text=new JTextField(20));
add(BorderLayout.SOUTH,button=new JButton("开始"));
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==button){
while(isActive){showtime();try {
Thread.sleep(1000);/**问题就是为什么Applet老是显示不出更新时间呢?求高手解答**/
} catch (InterruptedException e) {}
}}}
});
}
public void stop(){isActive=false;}
public void showtime(){
Date d=new Date(); String s=sdf.format(d);
text.setText(s);
}
} 展开
3个回答
展开全部
在while循环体的showtime();方法后面加一句代码:
update(getGraphics());
update(getGraphics());
追问
恩,可以了,非常感谢哈,不过我更想知道为什么?update(getGraphics());代表什么呢?呵呵,帮忙回答下我再给你多加20分,非常感谢哈
追答
update(getGraphics());
就是更新界面,为什么之前没有更新呢?因为程序一直在循环。
并不是你setText之后就更新,而是程序结束之后才会刷新,这是由Swing底层控制的。
展开全部
在控制面板的java选项中,显示控制台,你会看到错误的信息。
追问
可以再说清楚一点么?这个程序运行的时候如果单纯的只是用System.out.println();来打印出时间是可以的,但是当我把时间加到TextField里时就不能显示了,请问是为什么呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/**问题就是为什么Applet老是显示不出更新时间呢?求高手解答**/
实际上TextField是有更新时间的,但是你的网页没刷新,你隔一小段时间刷新一下网页你就会看到时间更新了,所以要实时更新就必须写一段代码让网页不停地刷新
实际上TextField是有更新时间的,但是你的网页没刷新,你隔一小段时间刷新一下网页你就会看到时间更新了,所以要实时更新就必须写一段代码让网页不停地刷新
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询