Çok sütunlu bir Tree
oluşturmak istiyorum. Bu eğitimi here (Almanca) ve bu answer (İngilizce) buldum. Bir sütuna onay kutularını eklemek istiyorum, ancak nasıl yapılacağını bilmiyorum. Bir onay kutusunu JTreeTable
'a döndürdüğümde, yürütme sırasında bir şey onay kutusu değil onay kutusu ayrıntıdır. Aşağıda resmedilen this gibi bir şeyi nasıl alabilirim?Ağaç tablosuna nasıl ekleyebilirim
cevap
, here, RowModel
sizin uygulanması getColumnClass()
doğru türünü ve getValueFor()
gelen doğru değeri döndürmesi gerekir gösterdi. Boolean.class
tipi değerler JCheckBox
ile işlenecektir. Aşağıdaki uygulamalar görüntü gösterdi üretmek:
@Override
public Class getColumnClass(int column) {
switch (column) {
case 0:
return Date.class;
case 1:
return Long.class;
case 2:
return Boolean.class;
case 3:
return Boolean.class;
case 4:
return Boolean.class;
default:
assert false;
}
return null;
}
@Override
public Object getValueFor(Object node, int column) {
File f = (File) node;
switch (column) {
case 0:
return new Date(f.lastModified());
case 1:
return f.length();
case 2:
return f.canRead();
case 3:
return f.canWrite();
case 4:
return f.canExecute();
default:
assert false;
}
return null;
}
ben onay kutusunu seçemezsiniz.
buna göre setValueFor()
sizin uygulanmasında node
istenen sütuna (ler) için isCellEditable()
sizin uygulanmasında true
dönmek ve güncellemeniz gerekir. Hücre editörü sonlandırıldığında, setValueFor()
uygulamanız çağrılır, bu nedenle daha sonra getValueFor()
tarafından döndürülen aynı değerini güncelleştirdiğinden emin olun. İsteğe bağlı olarak, bir EventListenerList
API'sinde belirtilen şemayı kullanarak TreeModelListener
listesini yöneten TreeModel
yöntemlerini uygulamak isteyeceksiniz; DefaultTreeModel
kaynağı code iyi bir örnektir.
Teşekkür ederim, tabloya onay kutusunu ekledim, yeni JCheckbox nesneleri yaratmaya ihtiyacım yok gibi görünüyor, varsayılan JCheckbox'ı kullanıyorum, kişiselleştir onay kutusunu kullanabilir miyim? – Ives
ve onay kutusunu işaretleyemiyorum – Ives
Belirtilen örnek, "File" ifadesini kullanır; Değiştirilebilir verileri işlemek için genel yaklaşım üzerinde ayrıntılı olarak çalıştım. – trashgod
Isnt 'JCheckBox',' JTable' hücresinin 'boolean' verileri için varsayılan olarak görüntüleniyor mu? – Prashant
[Örnek] için (http://stackoverflow.com/questions/21924846/checkbox-within-a-jxtreetable/21924930#21924930), [örnek] (http://stackoverflow.com/questions/31375773/how-do -you-make-bileşenleri-of-jpanel-as-a-düğüm-in-jtree-kullanılabilir/31376208 # 31376208) ve kişisel olarak, ben SwingX gelen JXTreeTable kullanacağım, sadece size verecek daha iyi bir uygulama Bu işi – MadProgrammer
yapman gerekecek kontrol etmek için teşekkürler, Jtrees içindeki onay kutularına izin vermek istemiyorum, yapmak istediğim ağaçların yanında sütunda. – Ives