📄 threadedsort.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 + -