Bu sorunun daha önce sorulmuş olduğunu ve çalışma kodunu kesip yapıştırabildiğim çok fazla iş parçacığı olduğunu biliyorum, ancak sorum şu ki, aşağıdaki kodun neden çalışmadığıyla ilgili. Birden çok öğeyi bir JList'ten kaldırmaya çalışıyorum, ancak aşağıdaki kodu çalıştırdığımda, sınır özelliğinden çıkarım.JList öğesinden bir öğe kaldırma
static DefaultListModel<File> listModel = new DefaultListModel<>();
JList<File> fileList = new JList<>(listModel);
void removeFiles() {
int[] listRange = new int[100];
listRange = fileList.getSelectedIndices();
int i = 0;
while (i <= listRange.length) {
listModel.remove(listRange[i]);
i++;
}
}
O fileList
veri olmaktadır onaylamak için hata ayıklama ifadeleri kullandım ve ben de listRange
yılında endeksleri temsil ettiğini teyit ettik (Ben 4 eklerseniz yani uzunluğu 4 olan dosyaları): İşte snippit var kaldırmak istediğim dosyaların dizinleri. Ama bir sebepten dolayı, onları ortadan kaldırmaz. fileList
'dan ve aynı zamanda modelden (listModel
) kaldırmayı denedim, ancak ikisi de işe yaramayacak. Burada bir şey mi görüyorum? Teşekkürler.
'sürü iş parçasını kesip yapıştırabildiğim konularım, ama sorum şu aşağıda neden kodun çalışmadığıyla ilgili bir soru değil. - Peki neden çalışma kodunu kodunuzla karşılaştırmıyorsunuz, farkın ne olduğunu görmek için. Sorunun ne olduğunu söylerseniz, bu, çalışma kodunu kesip yapıştırarak aynı sonuç olacaktır. Bu, bir şey öğrenmediğiniz problemin bazı temel hata ayıklamalarını yapmayı öğrenmediğiniz sürece, sizin için sorunu çözeceğimiz anlamına gelmez. – camickr