java swing如何能让多个jbutton同时处于被激活状态! swing多线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你应该学习下SwingWorker这个类;使用netbeans而不是Eclipse、Idea。 写了个列子,直接运行可以看到多个按钮触发自身事件,没有卡顿。import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Date;import javax.swing.JButton;import javax.swing.JFrame;public class Window { JFrame aq; JButton a1, a2; public static void main(String args[]) { Window ll = new Window(); } public Window() { JFrame aq = new JFrame("ButtonTest"); aq.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); a1 = new JButton("0"); a2 = new JButton("1"); Container af = aq.getContentPane(); af.setLayout(new GridLayout(2, 1)); af.add(a1); af.add(a2); ActionListener ajj = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String rn = e.getActionCommand(); System.out.println(rn); if (rn == "0") { System.out.println("0 clicked!"); Runnable r = new Runnable() { @Override public void run() { int i = 0; while (i < 10) { i++; System.out.println("0 : " + new Date()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; Thread t = new Thread(r); t.start(); } if (rn == "1") { System.out.println("1 clicked!"); Runnable r = new Runnable() { @Override public void run() { int i = 0; while (i < 10) { i++; System.out.println("1 : " + new Date()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }; Thread t = new Thread(r); t.start(); } } }; a1.addActionListener(ajj); a2.addActionListener(ajj); aq.pack(); aq.setVisible(true); }}; Quote: 引用 9 楼 huxiweng 的回复:写了个列子,直接运行可以看到多个按钮触发自身事件,没有卡顿。谢谢!我基础太薄弱了,现在在努力学习基础当中!此问题后面我会决解! spring自动封住成对象的问题 eclipse 的remote配置?在weblogic9.2中? 用Hibernate Criteria查询,怎么查日期型数据 public Collection findByUserAll() 数组的问题! Apache和tomcat整合问题:如何很好的显示servlet? 刚学使用Eclispe,遇到一个小问题 struts中javascript 脚本执行的问题 Struts 配置数据源问题 IDEA Springboot项目测试问题 找了一天错,错找出来了,却无力解决,求帮助。。。 hibernate 多对多自定义排序问题
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;import javax.swing.JButton;
import javax.swing.JFrame;public class Window {
JFrame aq;
JButton a1, a2; public static void main(String args[]) {
Window ll = new Window();
} public Window() {
JFrame aq = new JFrame("ButtonTest");
aq.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
a1 = new JButton("0");
a2 = new JButton("1"); Container af = aq.getContentPane();
af.setLayout(new GridLayout(2, 1));
af.add(a1);
af.add(a2);
ActionListener ajj = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { String rn = e.getActionCommand();
System.out.println(rn);
if (rn == "0") {
System.out.println("0 clicked!"); Runnable r = new Runnable() {
@Override
public void run() {
int i = 0;
while (i < 10) {
i++;
System.out.println("0 : " + new Date());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
}; Thread t = new Thread(r);
t.start();
}
if (rn == "1") {
System.out.println("1 clicked!");
Runnable r = new Runnable() {
@Override
public void run() {
int i = 0;
while (i < 10) {
i++;
System.out.println("1 : " + new Date());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
} }
}; Thread t = new Thread(r);
t.start();
} }
};
a1.addActionListener(ajj);
a2.addActionListener(ajj); aq.pack();
aq.setVisible(true);
}
};