将整数数组排序并显示到JPanel中

时间:2017-03-16 06:42:43

标签: java arrays swing sorting bubble-sort

我需要在JPanel中显示一个动态的冒泡排序的整数数组,但是在我对它没有在JPanel中显示的数组进行排序之后,我对编程很新,所以这可能是一个新手的错误。 / p>

这是我到目前为止的代码。

import java.util.ArrayList;
import java.util.List;
import javax.swing.JTextField;
public class exH extends javax.swing.JFrame {
private List<JTextField> arrayA;
private List<JTextField> temp;
int n=0;

public exH() {
        initComponents();
        arrayA=new ArrayList();
        temp=new ArrayList();
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
n=Integer.parseInt(a.getText());
panel.removeAll();
arrayA.clear();
for (int i=0;i<n;i++){
    JTextField txt =new JTextField();
    panel.add(txt);
    arrayA.add(txt);
    panel.updateUI();
}
a.setText("");
        // TODO add your handling code here:
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
for (int i=0;i<n-1;i++){
    for (int j=0;j<n-1;i++){
        int conv1 = Integer.parseInt(String.valueOf(arrayA.get(j)));
        int conv2 = Integer.parseInt(String.valueOf(arrayA.get(j+1)));
        if (conv1>conv2){
            temp.set(0,arrayA.get(j+1));
            arrayA.set(j+1,arrayA.get(j));
            arrayA.set(j,temp.get(0));
        }
    }
}
    }

这就是界面的外观。

JFrame Looking

1 个答案:

答案 0 :(得分:0)

当您在GUI中执行某些逻辑时,这就是问题。

你在做什么:

  1. 使用相同的List<JTextField>创建JTextField和JPanel。
  2. 根据JTextField的值
  3. List进行排序

    您未执行的操作是使用新订单重建JPanel。 JPanel不关心List的顺序,因此您可以对其进行随机播放,它不会更新视图。如果更改JtextField实例的值,则会有所不同,因为它们共享相同的实例。