【发布时间】:2014-06-08 11:08:26
【问题描述】:
想要从第二个列表中删除项目,没有 ListModel 的任何方式..?
import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings({ "serial", "rawtypes", "deprecation", "unchecked" })
public class Class_GUI_Test_1 extends JFrame {
JList list1, list2;
JButton add, remove, add_all;
private String[] names = { "hTC Explorer", "S_G_Nexus_s", "hTC Amaze", "LG OPTIMUS G" };
public Class_GUI_Test_1() {
super("TEST");
setLayout(new FlowLayout()); // BoxLayout(getContentPane(),
// BoxLayout.PAGE_AXIS));
list1 = new JList(names);
list1.setVisibleRowCount(3);
list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
add(new JScrollPane(list1));
add = new JButton("Add");
add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
list2.setListData(list1.getSelectedValues());
}
});
add(add);
list2 = new JList();
list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
list2.setFixedCellHeight(25);
list2.setVisibleRowCount(3);
list2.setFixedCellWidth(150);
add(new JScrollPane(list2));
add_all = new JButton("ADD All DATA");
add_all.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
list2.setListData(names);
}
});
add(add_all);
remove = new JButton("Remove_Data");
remove.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
list2.add(list1); // this is where i need help.
int index = list2.getSelectedIndex();
if (index >= 0)
list2.remove(index);
}
});
add(remove);
}
public static void main(String[] args) {
Class_GUI_Test_1 gui = new Class_GUI_Test_1();
gui.setVisible(true);
gui.setSize(250, 350);
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
【问题讨论】: