我需要在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));
}
}
}
}
这就是界面的外观。
答案 0 :(得分:0)
当您在GUI中执行某些逻辑时,这就是问题。
你在做什么:
List<JTextField>
创建JTextField
和JPanel。List
进行排序
醇>
您未执行的操作是使用新订单重建JPanel。 JPanel不关心List
的顺序,因此您可以对其进行随机播放,它不会更新视图。如果更改JtextField
实例的值,则会有所不同,因为它们共享相同的实例。