编写一个Java GUI程序,从键盘输入一组数(10个以上),放入数组元素,然后按从小到大排序,并以每行4个数的顺序依次输出
时间: 2024-03-03 11:47:36 浏览: 19
好的,我可以帮你解答这个问题。下面是一个示例程序,它可以实现你所需的功能:
```java
import java.util.Arrays;
import javax.swing.*;
public class SortArrayGUI {
public static void main(String[] args) {
// 创建一个文本框,用于输入数组元素
JTextArea inputTextArea = new JTextArea(10, 20);
inputTextArea.setLineWrap(true);
JScrollPane inputScrollPane = new JScrollPane(inputTextArea);
// 创建一个按钮,用于触发排序操作
JButton sortButton = new JButton("Sort");
// 创建一个文本框,用于输出排序结果
JTextArea outputTextArea = new JTextArea(10, 20);
outputTextArea.setEditable(false);
JScrollPane outputScrollPane = new JScrollPane(outputTextArea);
// 创建一个面板,用于放置输入组件和输出组件
JPanel panel = new JPanel();
panel.add(inputScrollPane);
panel.add(sortButton);
panel.add(outputScrollPane);
// 创建一个窗口,用于显示面板
JFrame frame = new JFrame("Sort Array GUI");
frame.setContentPane(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
// 给按钮添加监听器,实现排序操作
sortButton.addActionListener(event -> {
// 从文本框中读取输入的数组元素
String[] inputStrings = inputTextArea.getText().split("\\s+");
int[] inputArray = new int[inputStrings.length];
for (int i = 0; i < inputStrings.length; i++) {
inputArray[i] = Integer.parseInt(inputStrings[i]);
}
// 对数组进行排序
Arrays.sort(inputArray);
// 将排序结果输出到文本框中
outputTextArea.setText("");
for (int i = 0; i < inputArray.length; i++) {
outputTextArea.append(String.format("%d ", inputArray[i]));
if ((i + 1) % 4 == 0) {
outputTextArea.append("\n");
}
}
});
}
}
```
这是一个基于 Swing 的 GUI 程序,它包含一个文本框用于输入数组元素,一个按钮用于触发排序操作,和一个文本框用于输出排序结果。当用户点击“Sort”按钮时,程序将从输入文本框中读取数组元素,对数组进行排序,然后将排序结果输出到输出文本框中。排序结果每行显示 4 个数,以满足你的需求。