请问一下,同一个快速排序程序,为啥用swing控件基于JFrame的和直接在控制台输出的,时间差那么多。用控件写的时间特别长。。同样是用控件,选择排序,冒泡排序都比快排快。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class mainFrom {
JButton btnQuickSort;
JFrame mainFrame;
public mainFrom() {
initPage();
btnQuickSort = new JButton("开始快排");
btnQuickSort.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Thread quickThread = new Thread(new Runnable() {
@Override
public void run() {
//TODO 实现排序代码
}
});
quickThread.start();
}
});
}
private void initPage() {
// TODO 初始化页面
}
}
swing程序所有的界面事件都是在一个线程中处理,你的排序阻塞了界面处理线程,所以在排序没有结束的时候,界面事件处理线程处在阻塞状态。
像上面的代码,你把排序的逻辑放在一个线程中,这样界面就不会卡顿了。
http://jingyan.baidu.com/article/2f9b480d499dea41cb6cc295.html
再加一句,用控件写的只要一按排序,久要卡着几十秒,最后出来的时间也是几十秒,特别长
你的代码呢?肯定是代码写得有问题
控制台的输出也是需要时间的
swing页面处理是一个线程,看看你的代码 处理界面事件和处理排序的代码是不是在一个线程中