2017-03-16 7 views
0

バブルソートされた動的な配列をJPanelに表示する必要がありますが、配列をソートした後はJPanelに表示されません。これはルーキーミスかもしれないので、プログラミング。整数の配列をJPanelにソートして表示

これはこれまでのコードです。

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

+0

こんにちは、ようこそ。コードをインデントすることをお勧めします。インデントされていないコードは読みにくいです(回答が得られる可能性が低くなります)。 –

+0

_ "JPanelには表示されません。 JPanelではなく、リスト内のインスタンスの順序したがって、配列をソートした後にパネルを再構築する必要があります – AxelH

答えて

0

これはGUIでいくつかのロジックを行っている問題です。あなたがやっている

は次のとおりです。

  1. 同じJTextFieldList<JTextField>とのJPanelを作成します。あなたがやっていない何のJTextField

の値に基づいて

  • ソートListが新しい順にJPanelのを再構築することです。 JPanelはListの順序を気にしないので、シャッフルすることができます。ビューは更新されません。 JtextFieldインスタンスの値を変更すると、同じインスタンスを共有するため、これは異なります。

  • +0

    ありがとう!私はそれを徹底的に調べます。 – wasp66955

    関連する問題