MyFrame:
package com.itheima;
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame{
JLabel label;
JTextField text;
JButton SortButton,ClearButton;
JTextArea area;
PoliceListen policeListen;
public MyFrame() {
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
label = new JLabel("输入数组内容,空格为数组元素分隔符");
text = new JTextField(20);
SortButton = new JButton("排序");
ClearButton = new JButton("清除");
area = new JTextArea(9,20);
add(label);
add(text);
add(SortButton);
add(ClearButton);
add(new JScrollPane(area));
policeListen = new PoliceListen();
policeListen.setText(text);
policeListen.setArea(area);
policeListen.setClearButton(ClearButton);
policeListen.setSortButton(SortButton);
SortButton.addActionListener(policeListen);
ClearButton.addActionListener(policeListen);
}
}
PoliceListen:
package com.itheima;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Array;
import java.util.Arrays;
import static java.util.Arrays.*;
public class PoliceListen implements ActionListener {
JTextField text;
JButton SortButton,ClearButton;
JTextArea area;
public void setText(JTextField text) {
this.text = text;
}
public void setSortButton(JButton sortButton) {
SortButton = sortButton;
}
public void setClearButton(JButton clearButton) {
ClearButton = clearButton;
}
public void setArea(JTextArea area) {
this.area = area;
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == SortButton){
String arrayStr = text.getText().trim();
if(arrayStr.equals("")){
//当文本框为空时,提示输入内容
JOptionPane.showMessageDialog(null,"请输入数字内容");
}
for(int i=0;i<arrayStr.length();i++){
//当文本框有非数字时,提示。
char c = arrayStr.charAt(i);
if(!Character.isDigit(c) && c != ' '){
JOptionPane.showMessageDialog(null,"输入包含非数字内容");
text.setText("");
return;
}
}
String numStrs[] = arrayStr.split(" {1,}");
area.setText("数组原有内容:\n");
for(String str:numStrs){
area.append(str + " ");
}
int numArray[] = new int[numStrs.length];
for(int i=0;i<numArray.length;i++){
numArray[i] = Integer.parseInt(numStrs[i]);
}
area.append("\n");
sort(numArray);
area.append("数组排序后的内容:\n");
for(int i:numArray){
area.append(i+ " ");
}
}
if(e.getSource() == ClearButton){
text.setText("");
area.setText("");
}
}
}
Main:
package com.itheima;
public class Main {
public static void main(String[] args) {
MyFrame myFrame = new MyFrame();
myFrame.setBounds(100,100,280,320);
myFrame.setTitle("sort方法");
}
}