使用Jlist Java移动项目

时间:2018-02-09 15:53:19

标签: java jlist

我需要做的基本上就是 - http://www.esus.com/images/jlistex.jpg,不同之处在于我必须从我将把项目添加到Jlist的地方创建textArea。我还没有开始这样做,因为我有另一个问题。

首先,我对这些设计很难,所以我使用flowLayout来简化,但如果有人告诉我如何使它像图片中那样,那就太好了。我设法将项目从leftList移动​​到rightList,但我不能添加超过1.这是问题之一。 DefaultListModel是我最近添加的东西,说实话,我不确定它是做什么的。我必须修复的最后一件事是按钮,我移动项目。我可能做了一些非常错误的事情,因为我可以以某种方式删除所有内容而无需选择列表中的任何项目。我添加的项目只是为了查看我的程序是否正常运行。

public class Lesson5 extends JFrame{
private JList leftList;
private JList rightList;
private JButton moveRight;
private JButton moveLeft;
private JTextArea textArea;
private JButton add;
private DefaultListModel model;
private DefaultListModel model2;

Lesson5(){
    super("Lesson5");
    setLayout(new FlowLayout());
    model=new DefaultListModel();
    model2=new DefaultListModel();
    leftList=new JList(model);
    model.addElement("Something");
    model.addElement("Another");
    leftList.setVisibleRowCount(5);
    leftList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
    add(new JScrollPane(leftList));

    moveRight=new JButton(">");
    moveLeft=new JButton("<");
    add(moveLeft);
    add(moveRight);
    moveRight.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            int index=leftList.getSelectedIndex();
            rightList.setListData(leftList.getSelectedValuesList().toArray());
            if(index!=-1) {
                model.remove(index);
            }

        }
    });
    moveLeft.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            int index=leftList.getSelectedIndex();
            leftList.setListData(rightList.getSelectedValuesList().toArray());
            if(index!=-1) {
                model.remove(index);
            }
        }
    });
    rightList=new JList(model2);
    rightList.setVisibleRowCount(5);
    rightList.setFixedCellHeight(100);
    rightList.setFixedCellHeight(20);
    rightList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
    add(new JScrollPane(rightList));
}

public static void main(String[] args) {
    Lesson5 lesson5=new Lesson5();
    lesson5.setVisible(true);
    lesson5.setBounds(100,100,350,300);
}

}

0 个答案:

没有答案