Сортировка и несортировка - PullRequest
0 голосов
/ 13 февраля 2019

Я уже некоторое время борюсь с этой сортировкой и даю вам надежду, ребята.

Идея состоит в том, чтобы создать список, который можно сортировать и не сортировать.Я также хочу, чтобы функциональность добавляла элементы удаления из списка.

Теперь я спрашиваю, каков наилучший способ сделать это?

Я поигрался с array.sort.прямо сейчас это делает сортировку, но после сортировки я больше не могу добавлять элементы в список.Также я не понимаю, как выполнить сортировку.

Метод AddButton

        Button addButton = new Button("Add");
    addButton.setForeground(Color.WHITE);
    addButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            rightModel.addElement(leftList.getSelectedItem());
            sortList.add(leftList.getSelectedItem());

        }
    });
    addButton.setBackground(new Color(241, 57, 83));
    addButton.setBounds(48, 366, 85, 22);
    panel.add(addButton);

Компонент Jlist

        DefaultListModel rightModel = new DefaultListModel();
    JList rightList = new JList(rightModel);
    rightList.setBounds(412, 58, 219, 283);
    contentPane.add(rightList);

Метод SortButton

        Button sortButton = new Button("Sort A-Z");
    sortButton.setForeground(Color.WHITE);
    sortButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            ListModel model = rightList.getModel();
            String[] strings = new String[rightModel.size()];
            for (int i = 0; i < strings.length; i++) {
                strings[i] = model.getElementAt(i).toString();
            }
            Arrays.sort(strings);
            rightList.setListData(strings); 
        }
    });
    sortButton.setBackground(new Color(241, 57, 83));
    sortButton.setBounds(412, 345, 80, 22);
    contentPane.add(sortButton);

1 Ответ

0 голосов
/ 13 февраля 2019

Это то, что вам нужно сделать на вашем столе:

table.getTableHeader().addMouseListener(new MouseAdapter() {
      private SortOrder   currentOrder    = SortOrder.UNSORTED;
      private int         lastCol         = -1;

      @Override
      public void mouseClicked(MouseEvent e) {
          int column = table.getTableHeader().columnAtPoint(e.getPoint());
          column = convertColumnIndexToModel(column);
          if (column != lastCol) {
              currentOrder = SortOrder.UNSORTED;
              lastCol = column;
          }
          RowSorter<?> sorter = getRowSorter();

          if (!((TableRowSorter)sorter).isSortable(column)) {
              return;
          }

          List<RowSorter.SortKey> sortKeys = new ArrayList<>();
          if (e.getButton() == MouseEvent.BUTTON1) {
              switch (currentOrder) {
                  case UNSORTED:
                      sortKeys.add(new RowSorter.SortKey(column, currentOrder = SortOrder.ASCENDING));
                      break;
                  case ASCENDING:
                      sortKeys.add(new RowSorter.SortKey(column, currentOrder = SortOrder.DESCENDING));
                      break;
                  case DESCENDING:
                      sortKeys.add(new RowSorter.SortKey(column, currentOrder = SortOrder.UNSORTED));
                      break;
              }
              sorter.setSortKeys(sortKeys);

          }
      }

  });

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...