如何让按钮自动呈现被按下的状态 我想实现这样的一个效果:窗体(或面板)中有1个按钮,3秒后自动按下,然后执行相应的事件处理。不知道GUI中是否有js中的onclick()方法,或者用什么其他的方式实现。请指教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 封装一个BUTTON 子类,然后呢重载DrawItem,在其中根据你设定的状态量进行自绘 http://topic.csdn.net/t/20041008/13/3433433.html 3秒后自动执行某个事件处理是可以实现的,但我看了一下JButton和AbstractButton源代码,小弟没有找到按钮按下的效果(即深色效果),所以只好通过设置JButton的setBackground将按钮颜色设为深色import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;/** * 作者:李 世贵 * JDK: 1.6 * 来源: http://blog.csdn.net/lishigui * 欢迎转接,请保留作者和来源,谢谢! * 2009-4-23 上午16:00:15 */public class test extends JFrame{ private JButton button = null; public test() { super("test"); button = new JButton("test"); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { action(); } }); this.getContentPane().add(button); setSize(300,200); setVisible(true); onclick(); } private void onclick(){ try { Thread.currentThread().sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } button.setBackground(new Color(184,201,227)); try { Thread.currentThread().sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } button.setBackground(null); action(); } private void action(){ JOptionPane.showMessageDialog(this, "hello!"); } public static void main(String[] args) { new test().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }} 2楼所说的类应该是可以的,不过没用过,API也没仔细看过。3提供的方法不会用……推荐的网址我看了,是C++的,没太看懂,不过仍然非常感谢!5楼的方法很可行,我根据你说的,在AbstractButton类中找到了doClick(int milltime)这个方法,可以直接实现我要的效果,要不是你说道了这个类,我想我不会找到这个办法的。 谢谢楼主,也让我也学到了知识啊!!小弟刚从事Java开发还不到一年,经验和知识积累还不够,请大家多关照啊!! 一个for循环就能打印出一个空心菱形! 求解 sax解析的问题 小弟问一个有关正则表达式的事情 Scanner类问题 Socket中如何判断服务器有新的消息到来? 如何解析xml?急 讨论一下两个类之间的关系?? 哪有下载JAVA的软件的?我要开始学习JAVA了?希望各位大哥大姐大力支持。 我不明白微软为什么要跟着java学习虚拟机,难道windows一定要越慢越值钱吗? 强制类型转换异常。自动封装出现问题? JAVA命名是按什么规则,比如C++之匈牙利命名法,还是?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
* 作者:李 世贵
* JDK: 1.6
* 来源: http://blog.csdn.net/lishigui
* 欢迎转接,请保留作者和来源,谢谢!
* 2009-4-23 上午16:00:15
*/
public class test extends JFrame{
private JButton button = null;
public test() {
super("test");
button = new JButton("test");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
action();
}
});
this.getContentPane().add(button);
setSize(300,200);
setVisible(true);
onclick();
}
private void onclick(){
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
button.setBackground(new Color(184,201,227));
try {
Thread.currentThread().sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
button.setBackground(null);
action();
}
private void action(){
JOptionPane.showMessageDialog(this, "hello!");
}
public static void main(String[] args) {
new test().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
3提供的方法不会用……推荐的网址我看了,是C++的,没太看懂,不过仍然非常感谢!
5楼的方法很可行,我根据你说的,在AbstractButton类中找到了doClick(int milltime)这个方法,可以直接实现我要的效果,要不是你说道了这个类,我想我不会找到这个办法的。
小弟刚从事Java开发还不到一年,经验和知识积累还不够,请大家多关照啊!!