我需要做的基本上就是 - 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);
}
}