الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن الحذف في jlist

بدأه lovely_ned في 8 نوفمبر 2010 · 1 رد · 494 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان اعمل زر يقوم بحدف كل item التي ثمت بتحديدها في jlist

model = new DefaultListModel();

			ListType = new JList(model);
			ListType.setSelectionMode(DefaultListSelectionModel.MULTIPLE_INTERVAL_SELECTION);


			ListType.setBounds(new Rectangle(165, 58, 303, 150));



Retirer = new JButton();
			Retirer.setBounds(new Rectangle(481, 188, 105, 21));
			Retirer.setText("Retirer");
			Retirer.setFont(new Font("Calibri", Font.BOLD, 14));
			Retirer.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {

					int[] selectedIx = getListType().getSelectedIndices();

					for (int i=0; i<selectedIx.length; i++) {
					     model.remove(selectedIx);
					}




				}
			});

لكن المشكلة انه يقوم دائما بحذف اول item محدد فقط؟؟؟؟

#2

السلام عليكم

اذا قمنا بعكس الحلقة التكرارية الخاصة بالحذف بحيث تقوم بالحذف من آخر عنصر مختار الى اول عنصر

لانه عند حذف اي عنصر من List تقوم باعادة ترتيب العناصر تلقائيا فيتغير مكان العناصر المطلوب حذفها

مثال

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultListModel;
import javax.swing.DefaultListSelectionModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;

public class TestJList extends JFrame {

	JList list;
	DefaultListModel listModel;

	public TestJList() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(300, 300);

		listModel = new DefaultListModel();
		for (int i = 0; i < 10; i++) {
			listModel.addElement(i);
		}
		list = new JList(listModel);
		list.setSelectionMode(DefaultListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
		this.getContentPane().add(list, BorderLayout.CENTER);

		JButton button = new JButton("remove selected");
		this.getContentPane().add(button, BorderLayout.SOUTH);
		button.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				int[] selected = list.getSelectedIndices();
				for (int i = selected.length; i > 0; i--) {
					listModel.remove(selected[i - 1]);
				}
			}
		});
	}

	public static void main(String[] args) {
		TestJList testJList = new TestJList();
		testJList.setVisible(true);
	}

}

مواضيع مشابهة