Java的程序中,如何删除jList中选定的项(jList.getSelectedValue())

Java的程序中,如何删除jList中选定的项(jList.getSelectedValue()),第1张

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 可以动态的添加数据

具体代码如下:(刚好昨天回答别人,写的一段代码 可以做个示范)

全部菜品的JList中 ,单击菜品,可以出现在已选菜品中

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键的时候可以多选等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9504884.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存