/*
* 选择排序的研究
*
* */
package day9yue11;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class SelectSort2 extends JFrame {
private JPanel contentPane;
private JTextArea area1;
private JTextArea area2;
int[] arr = new int[10];
public SelectSort2() {
this.setTitle("选择排序研究");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 100, 450, 300);
// 创建容器,设置属性
contentPane = new JPanel();
this.setContentPane(contentPane);
GridBagLayout gbl_contentPane = new GridBagLayout();
gbl_contentPane.columnWidths = new int[] { 0, 0 };
gbl_contentPane.rowHeights = new int[] { 0, 0, 0, 0, 0 };
gbl_contentPane.columnWeights = new double[] { 1.0, Double.MIN_VALUE };
gbl_contentPane.rowWeights = new double[] { 1.0, 0.0, 1.0, 0.0, Double.MIN_VALUE };
contentPane.setLayout(gbl_contentPane);
// 创建新的容器
JScrollPane scrollPane = new JScrollPane();
// 设置scrollPane属性
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
gbc_scrollPane.insets = new Insets(0, 0, 5, 0);
gbc_scrollPane.fill = GridBagConstraints.BOTH;
gbc_scrollPane.gridx = 0;
gbc_scrollPane.gridy = 0;
// 把scrollPane添加到contentPane
contentPane.add(scrollPane, gbc_scrollPane);
// 设置第一个TextArea
area1 = new JTextArea();
scrollPane.setViewportView(area1);
// 设置按钮
JButton button1 = new JButton("生成随机数组");
// 生成随机数组
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getArr();
}
});
GridBagConstraints gbc_button = new GridBagConstraints();
gbc_button.insets = new Insets(0, 0, 5, 0);
gbc_button.gridx = 0;
gbc_button.gridy = 1;
contentPane.add(button1, gbc_button);
// 再创建一个JScrollPane 用来存储area2
JScrollPane scrollPane2 = new JScrollPane();
GridBagConstraints gbc_scrollPane_1 = new GridBagConstraints();
gbc_scrollPane_1.insets = new Insets(0, 0, 5, 0);
gbc_scrollPane_1.fill = GridBagConstraints.BOTH;
gbc_scrollPane_1.gridx = 0;
gbc_scrollPane_1.gridy = 2;
contentPane.add(scrollPane2, gbc_scrollPane_1);
// 设置第二个TextArea
area2 = new JTextArea();
scrollPane2.setViewportView(area2);
// 创建“排序按钮”
JButton button2 = new JButton("排序");
button2.addActionListener(new ActionListener() {
// 排序算法
public void actionPerformed(ActionEvent e) {
selectSort();
}
});
// 设置button2的样式
GridBagConstraints gbc_button2 = new GridBagConstraints();
gbc_button2.gridx = 0;
gbc_button2.gridy = 3;
contentPane.add(button2, gbc_button2);
}
// 生成数组算法
public void getArr() {
area1.setText("");
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = r.nextInt(50);
area1.append(arr[i] + " ");
}
}
// 选择排序算法
public void selectSort() {
// 点击按钮时候先清空一下area2
area2.setText("");
for (int i = 1; i < arr.length; i++) {
int index = 0;
for (int j = 1; j <= arr.length - i; j++) {
if (arr[j] > arr[index]) {
index = j;
}
}
int temp = arr[arr.length - i];
arr[arr.length - i] = arr[index];
arr[index] = temp;
}
// 生成新的数组,添加到文本区域
for (int i = 0; i < arr.length; i++) {
area2.append(arr[i] + " ");
}
}
public static void main(String[] args) {
SelectSort2 s2 = new SelectSort2();
s2.setVisible(true);
}
}