MyFrame:
package com.itheima;
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame{
JTextArea area1,area2;
JButton button1,button2,clearButton;
PoliceListen policeListen;
public MyFrame() {
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
area1 = new JTextArea(9,30);
area2 = new JTextArea(9,30);
button1 = new JButton("生成随机数组");
button2 = new JButton("排序");
clearButton = new JButton("清除");
add(new JScrollPane(area1));
add(button1);
add(new JScrollPane(area2));
add(button2);
add(clearButton);
policeListen = new PoliceListen();
policeListen.setArea1(area1);
policeListen.setArea2(area2);
policeListen.setButton1(button1);
policeListen.setButton2(button2);
policeListen.setClearButton1(clearButton);
button1.addActionListener(policeListen);
button2.addActionListener(policeListen);
clearButton.addActionListener(policeListen);
}
}
PoliceListen
package com.itheima;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class PoliceListen implements ActionListener {
JTextArea area1,area2;
JButton button1,button2,clearButton;
int Array[] = new int[10];
Random random = new Random();
public void setArea1(JTextArea area1) {
this.area1 = area1;
}
public void setArea2(JTextArea area2) {
this.area2 = area2;
}
public void setButton1(JButton button1) {
this.button1 = button1;
}
public void setButton2(JButton button2) {
this.button2 = button2;
}
public void setClearButton1(JButton clearButton) {
this.clearButton = clearButton;
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button1){
for (int i = 0; i < 10; i++) {
Array[i] = random.nextInt(50);
area1.append(Integer.toString(Array[i]) + " ");
}
area1.append("\n");
}
if(e.getSource() == button2){
String []numstrs = area1.getText().split("\n{1,}");
// 1.将文本域2的每一行放到字符串数组中
String nums[];
int numberArray[];
int temp;
for(int i=0;i<numstrs.length;i++){
nums = numstrs[i].split(" {1,}");
// 2.将文本域第i行一空以空格作为条件分割,每个数字作为元素
numberArray = new int[nums.length];
for(int x=0;x<numberArray.length;x++){
numberArray[x] = Integer.parseInt(nums[x]);
//3.字符串转换为整型
}
for(int j=0;j<numberArray.length;j++){
//选择排序
for (int k = j+1; k <numberArray.length; k++) {
if(numberArray[j] > numberArray[k]){
temp = numberArray[j];
numberArray[j] = numberArray[k];
numberArray[k] = temp;
}
}
}
for (int m = 0; m <numberArray.length; m++) {
//添加
area2.append(numberArray[m] + " ");
}
area2.append("\n");
}
}
if(e.getSource() == clearButton){
area1.setText("");
area2.setText("");
}
}
}
Main:
package com.itheima;
public class Main {
public static void main(String[] args) {
MyFrame myFrame = new MyFrame();
myFrame.setBounds(100,100,350,420);
myFrame.setTitle("选择排序法");
}
}
这题有点读取文件的味道。
第一步,将文本域1的每一行读取储存在一个字符串数组numstrs[]中(以换行为分割条件)。
第二步,遍历numstrs[]数组,每次遍历,生成一个字符串数组nums[]储存每一个行的所有数字(以空格作为分割方式)。
第三步,生成一个numberArray[]整型数组,将刚才nums[]数组中每一个元素转换为整型,储存在number/array[]数组中。