⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadedsort.java

📁 char33-2 多线程应用 提供了本书第3章的多线程应用实例的源程序;
💻 JAVA
字号:
//ThreadSort.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class ThreadedSort extends JFrame {
	//以下代码为设置面板
	JPanel quickSortPanel;
	JPanel bubbleSortPanel;
	JPanel biDirectionBubbleSortPanel;
	
	public ThreadedSort() {
		super("Threaded Sort Demo");
		//设置布局格式
		getContentPane().setLayout(new GridLayout(1, 2));
		//生成排序算法对象
		SortAlgorithm sa = new BubbleSortAlgorithm();
		quickSortPanel = new AnimatePanel(sa);
		sa.setParent((AnimatePanel) quickSortPanel);
		
		JPanel panel = new JPanel(new BorderLayout());
		panel.setBorder(BorderFactory.createEtchedBorder());
		panel.add(quickSortPanel, BorderLayout.CENTER);
		panel.addMouseListener(new MouseAdapter() {
			public void mouseReleased(MouseEvent e) {
				((AnimatePanel) quickSortPanel).startSort();
			}
		});
		getContentPane().add(panel);
		
		sa = new BubbleSortAlgorithm();
		bubbleSortPanel = new AnimatePanel(sa);
		sa.setParent((AnimatePanel) bubbleSortPanel);
		//以下代码是对整个界面的构建
		panel = new JPanel(new BorderLayout());
		panel.setBorder(BorderFactory.createEtchedBorder());
		panel.add(bubbleSortPanel, BorderLayout.CENTER);
		panel.addMouseListener(new MouseAdapter() {
			public void mouseReleased(MouseEvent e) {
				((AnimatePanel) bubbleSortPanel).startSort();
			}
		});
		getContentPane().add(panel);
		sa = new BubbleSortAlgorithm();
		biDirectionBubbleSortPanel = new AnimatePanel(sa);
		sa.setParent((AnimatePanel) biDirectionBubbleSortPanel);
		panel = new JPanel(new BorderLayout());
		panel.setBorder(BorderFactory.createEtchedBorder());
		panel.add(biDirectionBubbleSortPanel, BorderLayout.CENTER);
		panel.addMouseListener(new MouseAdapter() {
			public void mouseReleased(MouseEvent e) {
				((AnimatePanel) biDirectionBubbleSortPanel).startSort();
			}
		});
		getContentPane().add(panel);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
	
	public static void main(String[] args) {
		JFrame frame = new ThreadedSort();
		frame.pack();
		frame.setSize(800, 600);
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Dimension frameSize = frame.getSize();
		if (frameSize.height > screenSize.height) {
			frameSize.height = screenSize.height;
		}
		if (frameSize.width > screenSize.width) {
			frameSize.width = screenSize.width;
		}
		frame.setLocation(
			(screenSize.width - frameSize.width) / 2,
			(screenSize.height - frameSize.height) / 2);
		frame.setVisible(true);
	}
}	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -