我有我希望目前只有两个问题。我在之前问过的一个问题上得到了帮助,但现在我遇到了不同的问题。我现在的问题是我需要将排序数组打印到 JTextField 中。我没有关于如何对数组进行排序的问题,我只是想在按下 Bubble Sort 按钮时帮助了解如何让数组打印到 JTextField。目前,当我按下按钮时,它会冻结。它冻结在这条线上。
list.add(Integer.valueOf(input.nextInt()));
请帮忙谢谢。
import java.awt.EventQueue;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class Sorting {
private JFrame frame;
private JTextArea inputArea;
private JTextField outputArea;
ArrayList<Integer> list = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Sorting window = new Sorting();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Sorting() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Sorting");
frame.getContentPane().setLayout(null);
JButton bubbleButton = new JButton("Bubble Sort");
bubbleButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
list.add(Integer.valueOf(input.nextInt()));
// for(int i = 0; i < list.size(); i++){
//
// }
}
});
bubbleButton.setBounds(10, 211, 114, 23);
frame.getContentPane().add(bubbleButton);
JButton mergeButton = new JButton("Merge Sort");
mergeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
mergeButton.setBounds(305, 211, 114, 23);
frame.getContentPane().add(mergeButton);
JButton quickButton = new JButton("Quick Sort");
quickButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
quickButton.setBounds(163, 211, 114, 23);
frame.getContentPane().add(quickButton);
inputArea = new JTextArea();
inputArea.setBounds(10, 36, 414, 51);
frame.getContentPane().add(inputArea);
outputArea = new JTextField();
outputArea.setEditable(false);
outputArea.setBounds(10, 98, 414, 59);
frame.getContentPane().add(outputArea);
outputArea.setColumns(10);
JLabel label = new JLabel("Please Enter 5 Numbers");
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setBounds(10, 11, 414, 14);
frame.getContentPane().add(label);
}
}
需要什么:
- GUI 将具有三个按钮,代表排序方法 o Bubble o Quick o Merge
- GUI 将有一个区域供用户输入 5 个数字进行排序。将它们存储在数组或数组列表中
- GUI 将有一个区域显示排序的每个步骤。这可以是一个区域,每次完成一个步骤时,它会替换显示每个步骤的行或几行。
冒泡排序按钮中的当前更新:
public void actionPerformed(ActionEvent arg0) {
userInput = inputArea.getText();
Scanner input = new Scanner(userInput);
list.add(Integer.valueOf(input.nextInt()));
for(int i = 0; i < list.size(); i++){
outputArea.setText(userInput);
}