【问题标题】:JList: sorting by Up/down buttonsJList:按向上/向下按钮排序
【发布时间】:2012-05-25 10:08:04
【问题描述】:

问题:有没有一种简单的方法可以使用 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();
}

提前感谢您的帮助和耐心等待。我是初学者:)

【问题讨论】:

    标签: java swing sorting selection jlist


    【解决方案1】:

    如果您使用支持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();
    }
    

    【讨论】:

      猜你喜欢
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2016-05-14
      • 1970-01-01
      • 2015-05-18
      • 2013-02-07
      相关资源
      最近更新 更多