Java 从双jlist之一删除元素
要从第二个列表中删除项目,是否可以不使用ListModelJava 从双jlist之一删除元素,java,swing,Java,Swing,要从第二个列表中删除项目,是否可以不使用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;
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);
}
}
从JList中创建、添加和删除元素
JList
s可以使用构造函数用一组字符串初始化
public JList(Object[] listData)
例如,可以提供字符串数组:
String[] ar = {"one", "two", "three"};
JList list = new JList(ar);
但是,在初始化后,没有添加或删除项目的方法。相反,如果需要执行此操作,则必须使用带有JList的类。将ListModel视为保存JList中项目的对象
listModel = new DefaultListModel();
listModel.remove(n);
listModel.clear();
有几点:
- 是不推荐使用的方法,因此不要使用它
- 不要简单地抑制警告
- 即使不指定默认使用的
ListModel
。阅读更多关于感谢的信息,但为什么会有反对票/不知道是谁投了反对票,没有任何评论。也许你的问题不清楚。只需再次更新您的问题,以描述您在程序中遇到的问题。无论何时你发布你的代码,你都需要用文字来描述它。谢谢,从现在开始,我将尝试详细阐述我的问题@Braj有你的联系方式吗。。。?(电邮/fb)
JList list = new JList(listModel);
listModel.addElement(“new item”);
listModel.remove(n);
listModel.clear();