2010-04-17 16 views
13

table1.setAutoCreateRowSorter(true); yöntemini aradığım Jtable'ım var. Yani bu iyi çalışıyor. Ama aynı zamanda JFrame sınıfımda bir düğmeye bastığımda ateşlenen bir yöntemim var. Bu satır int selectedRows[] = this.table1.getSelectedRows(); kullanarak seçilen satır dizinlerini alır. Ve seçilen aralıkta karşılık gelen ilk satır için bir düzenleme penceresi görüntüler.Java: Seçili satırın dizini, sıralı olduğunda değişmez

Sorun şu ki, eğer kolonun başlıklarını tıklamıyorsam (yani onları hiç sorgulamam), yöntemim mükemmel çalışır. Ancak satırı sıraladığımda, satırların indekslerinin hiç değişmediği görülüyor. Böylece, herhangi bir sıralama yapmadan önce başlangıçta bu sırada eski satır için bir düzenleme penceresi ortaya çıkıyor.

JDK 6 kullanıyorum, bir ipucu verebilir misiniz?

cevap

17

Temel model, düzeni değiştirmiyor. Sadece görünüm değişir. Bu konuda daha fazla bilgiyi Sun's tutorial numaralı telefondan bulabilirsiniz. JTable.convertRowIndexToView() ve JTable.convertRowIndexToModel() kullanmanız gerekecektir.

+0

Teşekkürler çocuklar şimdi table1.getModel() kullanarak doğru seçilmiş değeri bulabilirim. GetValueAt (table1.convertRowIndexToView (selectedRows [i]), 0); ' – adrian7

5

Model (temel veri) indekslerini ve görünüm endekslerini dönüştürmek için convertRowIndexToView(int) ve convertRowIndexToModel(int) kullanmanız gerekir.

İlgili konular