JList에서 우선 순위별로 항목을 정렬하려면 어떻게해야합니까?
예를 들어 "세탁, 요리, 세탁"과 같은 여러 가지 작업이 있으며 가장 중요한 작업을 마우스로 정렬 할 수 있기를 원합니다.
이 지금까지 내 코드입니다 :우선 순위별로 작업 정렬
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Test extends JFrame implements ActionListener {
JPanel pLeft = new JPanel();
JPanel pRight = new JPanel();
String data[] = {
"Item 1",
"Item 2",
"Item 3",
"Item 4",
"Item 5"
};
DefaultListModel model = new DefaultListModel();
JList list = new JList(model);
JScrollPane listScroller = new JScrollPane(list);
JButton bUp = new JButton("UP");
JButton bDown = new JButton("DOWN");
public Test() {
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(300, 100, 300, 200);
this.setVisible(true);
this.setLayout(new BorderLayout());
pRight.setLayout(new BorderLayout());
this.add(pLeft, BorderLayout.WEST);
this.add(pRight, BorderLayout.EAST);
listScroller.setPreferredSize(new Dimension(150, 150));
pLeft.add(listScroller);
pRight.add(bUp, BorderLayout.NORTH);
pRight.add(bDown, BorderLayout.SOUTH);
bUp.addActionListener(this);
bDown.addActionListener(this);
for (int i = 0; i < data.length; i++) {
model.add(i, data[i]);
}
}
@Override
public void actionPerformed(ActionEvent ae) {
Object source = ae.getSource();
if (source == bUp) {
model.setElementAt(model.getElementAt(list.getSelectedIndex()), list.getSelectedIndex() + 1);
}
if (source == bDown) {
model.setElementAt(model.getElementAt(list.getSelectedIndex()), list.getSelectedIndex() - 1);
}
}
public static void main(String[] args) {
Test test = new Test();
}
}
는하지만 대신 위치를 "변화"의 이전 항목은 새로 대체됩니다.
작업을 관리하도록 구성하기 때문에 기본 정렬 기능을 사용할 수 없습니다. 나는 그것이 막연하다고 생각한다. – Phani
아니요, 사용자가 기본 정렬없이 단독으로이 작업을 수행 할 수 있어야합니다. – user1170330
정렬 기능을 사용하여 JList로 이동할 수 있습니다. 괜찮아. 당신은 그 기능을 가진 많은 코드를 발견 할 것이다. 그냥 구글. – Phani