如何创建一个java.swing.Timer类的不停调用的啊?比如我点击开始的按钮,然后系统通过该事件不停的调用一句话,或者是一段代码?
----------------解决方案--------------------------------------------------------
传入一个ActionListener就可以了
具体看看API,很详细的
----------------解决方案--------------------------------------------------------
谢谢了!我来试试
----------------解决方案--------------------------------------------------------
先创建ActionListener接口与一个Timer的对像,如Timer t=new Timer(1000,this),覆盖public void actionPerformed(ActionEvent e){}方法.
如public void actionPerformed(ActionEvent e){
if(e.getSource()==timer){
System.out.println("Hello World!");
}
}
然后只要在按钮的监听里实现t.start()方法就行了.
或者你也可以不用Timer类,自已单独弄一个线程来实现这个功能.
基本上是这样的,你自己再试试看吧...
----------------解决方案--------------------------------------------------------
还是这个问题,我在匿名类里面实现了启动,但是我用另外一个按钮来停止它,停止不住
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Tim extends JFrame{
JPanel pnl;
JButton btn1=new JButton("开始");
JButton btn2=new JButton("停止");
FlowLayout flowLayout=new FlowLayout();
Timer obj;
Tim(){
super("Timer");
men();
action();
}
void men(){
pnl=(JPanel)getContentPane();
pnl.setLayout(flowLayout);
setSize(new Dimension(400,300));
pnl.add(btn1);
pnl.add(btn2);
this.setVisible(true);
}
void action(){
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
obj=new Timer(5000,this);
obj.start();
System.out.println("aaaaaaaaaaaaaaaa");
}
});
btn2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
obj.stop();//说我这个obj必须声明为最终类型,我对这个词不理解,不知道什么意思,obj=new Timer(5000,this);如何把这个obj对象传到下面来啊?
}
});
}
public static void main(String[] args){
Tim obj=new Tim();
}
}
----------------解决方案--------------------------------------------------------
给你看看.等会.
----------------解决方案--------------------------------------------------------
package tim;
/****************************
* 网络.测试timer类的用法.
*
***************************/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Tim extends JFrame{
JPanel pnl;
JButton btn1=new JButton("开始");
JButton btn2=new JButton("停止");
FlowLayout flowLayout=new FlowLayout();
Timer obj;
Tim(){
super("Timer");
obj=new Timer(50,new ActionListener()
{ /**********************************/
public void actionPerformed(ActionEvent e)//在此处写上其的监听者,此处进行定义想要做的事
{ /**********************************/
System.out.println("aaaaaaaaaaaaaaaa");
}
});
men();
action();
}
void men(){
pnl=(JPanel)getContentPane();
pnl.setLayout(flowLayout);
setSize(new Dimension(400,300));
pnl.add(btn1);
pnl.add(btn2);
this.setVisible(true);
}
void action(){
/*btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
/*****************************/
/* obj=new Timer(5000,this);//用法不错,把其放于其的监听者之内了
/****************************/
/* obj.start();
System.out.println("aaaaaaaaaaaaaaaa");
}
});*/
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
/*******************************/
obj.start();//在此处开始其计时器的工作. 开始操作
/******************************/
}
});
btn2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
/***********************/
obj.stop();//在此处进行结束其计时器的结束. 结束操作
/***********************/
dispose();
}
});
}
public static void main(String[] args){
Tim obj=new Tim();
}
}
[此贴子已经被作者于2007-2-4 23:05:23编辑过]
----------------解决方案--------------------------------------------------------
使用Eclipse
http://www.eclipse.org/
java与你共枕.
----------------解决方案--------------------------------------------------------
//说我这个obj必须声明为最终类型,我对这个词不理解,不知道什么意思,obj=new Timer(5000,this);如何把这个obj对象传到下面来啊?
why?
----------------解决方案--------------------------------------------------------
btn2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
obj.stop();
dispose();//加上好些.
}
});
[此贴子已经被作者于2007-2-4 23:00:40编辑过]
----------------解决方案--------------------------------------------------------