
DefaultListModel model1 = new DefaultListModel();
jListsetModel(model1);
model1addElement("增加");
model1removeElement("删除");
int n=jListgetSelectedIndex();
model1remove(n);
详细见这个>
public static void main(String[] args) {
JFrame f = new JFrame();
final Vector v = new Vector();
vadd("Dog");
vadd("Cat");
vadd("Lion");
vadd("Tiger");
final JList list = new JList(v);
listaddMouseListener(new MouseAdapter() {
ArrayList indices = new ArrayList();
public void mousePressed(MouseEvent e) {
//find the item which was clicked on
int index = listlocationToIndex(egetPoint());
Integer indexObj = new Integer(index);
//就是把选好的如果以前选过的项从indices里面删掉
//is this selected if so remove it
if (indicescontains(indexObj)) {
indicesremove(indexObj);
}
//如果是没选过的就存起来
//otherwise add it to our list
else indicesadd(indexObj);
//copy to an int array
int[] arr = new int[indicessize()];
for (int i = 0; i < arrlength; i++) {
int item = ((Integer) indicesget(i))intValue();
arr[i] = item;
}
//最后通过setSelectedIndices把JList设置好
//set selected indices
listsetSelectedIndices(arr);
}
});
fgetContentPane()add(list);
fsetVisible(true);
}
//你要是执行看不到List就改变窗口大小
分析,
1 可以使用直接在构造时给一个参数(数组或者Vector类型)
比如
String[] arr = {"张三","李四","王五"};JList<String> list = new JList<String>(arr);
2 使用一个DefaultListModel 可以动态的添加数据
具体代码如下:(刚好昨天回答别人,写的一段代码 可以做个示范)
Jlist1(全部菜品)就是用数组生成的Jlist
JList2(已选菜品)就是动态添加数据的JList
import javaawt;import javaxswing;
import javaxswingevent;
public class MenuFrame extends JFrame implements ListSelectionListener {
JTextField jtf;
JList<String> jlist1, jlist2;
static final String[] CP = { "青椒土豆丝", "西红柿炒鸡蛋", "麻辣小龙虾", "鱼香肉丝", "西湖醋鱼", "红汤老火锅", "可乐", "茉莉花茶" };
DefaultListModel<String> dlm;//用dlm给jlist2动态添加数据
public MenuFrame() {
JPanel jpCenter = new JPanel(new GridLayout(1, 2));
jlist1 = new JList<String>(CP);
jlist1addListSelectionListener(this);
JScrollPane jsp1 = new JScrollPane(jlist1);//滚动面板
jsp1setBorder(BorderFactorycreateTitledBorder("全部菜品"));//带标题的边框
jpCenteradd(jsp1);
jlist2 = new JList<String>();
dlm = new DefaultListModel<String>();
jlist2setModel(dlm);
JScrollPane jsp2 = new JScrollPane(jlist2);
jsp2setBorder(BorderFactorycreateTitledBorder("已选菜品"));
jpCenteradd(jsp2);
add(jpCenter);
jtf = new JTextField(5);
jtfsetEnabled(false);
jtfsetText("0道");
JLabel jl = new JLabel("你已经选中的菜单数量是:");
JPanel jpSouth = new JPanel();
jpSouthadd(jl);
jpSouthadd(jtf);
add(jpSouth, BorderLayoutSOUTH);
setTitle("点菜");
setSize(300, 200);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MenuFrame();//启动窗口
}
public void valueChanged(ListSelectionEvent e) {
if (egetValueIsAdjusting()) {
dlmaddElement(jlist1getSelectedValue());//给dlm添加元素,更新jlist2的数据
jtfsetText(dlmsize()+"道");
}
}
}
以上就是关于Java的程序中,如何删除jList中选定的项(jList.getSelectedValue())全部的内容,包括:Java的程序中,如何删除jList中选定的项(jList.getSelectedValue())、怎么保存JList里面的东西。、怎么让JList在不用按下control键的时候可以多选等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)