1

質問:jFrameの上下ボタンを使用してjListを並べ替える簡単な方法はありますか?私のJListは画像ファイルのパスを保存し、ファイル名の文字列を表示します。下/上ボタンをクリックして要素を下/上に移動したいのですが。

これが私がしたことです-効果は要素ではなく選択範囲(青いフィールド)を動かすことです。Button2はボタン「上」です。

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    int indexOfSelected = jList1.getSelectedIndex();
    File selectedFile = (File) jList1.getSelectedValue();
    indexOfSelected = indexOfSelected - 1;
    jList1.setSelectedIndex(indexOfSelected );
    jList1.updateUI();

}

JListの作成方法は次のとおりです。

public void openButtonActionPerformed() {

        fc.setMultiSelectionEnabled(true);
        int returnVal = fc.showDialog(null, "Open");

         if (returnVal == JFileChooser.APPROVE_OPTION) { 
               file = fc.getSelectedFiles();
               len = file.length;
               System.out.println(len);   
         }    
         for (i=0; i<len; i++){ 
            listModel.add(i, file[i]);
         }
         jList1.setModel(listModel);
         jList1.updateUI();
}

よろしくお願いいたします。よろしくお願いいたします。私は初心者です:)

4

1 に答える 1

6

操作をサポートするリストモデルを使用する場合は、set次のように実行できます。

private void swapElements(int pos1, int pos2) {
    File tmp = (File) listModel.get(pos1);
    listModel.set(pos1, listModel.get(pos2));
    listModel.set(pos2, tmp);
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    int indexOfSelected = jList1.getSelectedIndex();
    swapElements(indexOfSelected, indesOfSelected - 1);
    indexOfSelected = indexOfSelected - 1;
    jList1.setSelectedIndex(indexOfSelected );
    jList1.updateUI();
}
于 2012-05-25T10:13:57.463 に答える