2010-11-12 7 views
5

Etkileşimli bir JTable oluşturmak istiyorum. Bunun için masaya hücrelere JPanels eklemek istiyorum. JPanels hücrelerdeyken, çeşitli bileşenleri JPanels'e ekleyebilirim ve böylece tabloyu etkileşimli hale getirebilirim. Her bir JPanel'in farklı bileşenleri olabilir. Bunu başarmak mümkün ve sadece 1 tablo hücre editörü ve 1 masa hücre istekli oluşturmak zorunda. Bunu yapmak için daha iyi bir yolu bilen var mı?Etkileşimli JTable

Teşekkür

DÜZENLEME: yanıtlar için teşekkür ederiz. Ben zaten kullanıyorum bir çerçeve var. Kullanıcıların görüntüleri sürükleyip bırakabilecekleri, film oynayabilecekleri, grafikleri vb. Gösterebilecekleri bir JTable'a ihtiyacım vardı. Bu şeyleri yapmak için zaten bir işleve sahip olduğum için, bunları eklemek için bir JPanel'e ihtiyacım vardı. Bir JTable içinde görüntülenmesini istedim, böylece hücreler sıralanabilir, taşınabilir, satır/sütun ekleyebilir/silebilir ve iyi yapılandırılmış olabilir. JTable'ı kullanarak çalışmaya başlayamadım, bu yüzden kendi kendime yarattım. Sadece GridLayout kullanarak daha küçük JPanels (tablo hücreleri) içeren bir JPanel. Yavrularım için yeterince iyi çalışıyor. Tüm işlevselliği bir tablonun çizdiği sıfırdan yazmak için sadece bir acı.

+0

Ayrıca amacınız olarak ulaşmak istedim .... Ne yazık ki, jtable hücresinin içinde bir jpanel içinde bir düğme kullandığında, jbutton normal bir etkileşim (anim) vermez. bu nasıl yapılır? – gumuruh

cevap

5

Bu zor. JTable, hücre oluşturucuları sadece hücre içeriğini boyamak için kullanır. Bir scrollpane'e paketlenmiş bir gridlayout'un daha kolay bir çözüm olup olmadığını kontrol etmenizi tavsiye ederim.

+0

Bir kaydırma bölmesine gridlayout, ne demek istiyorsun? @ordnungswidrig? – gumuruh

3

Takma çerçevesi olarak JTable kullanmaya çalıştığınız anlaşılıyor. Durumun böyle olduğu düşünülürse, GUI'nizi birden çok bölmeli bölüme ayırmanıza olanak veren MyDoggy veya JDock gibi bir şey kullanmanız daha iyi olur.

+0

Sadece meraklı mısınız MyDoggy over FlexDock (https://flexdock.dev.java.net/)? –

+0

@Alex: Korkarım aslında flexdock kullanmadım, bu yüzden onları gerçekten kıyaslayamıyorum. Yine de kontrol edeceğim. – Adamski

1

JSplitPane bu bağlamda bir alternatif olabilir: bir bölme, JTable'u, diğeri ise seçilen satırın genişletilmiş ayrıntılarını görüntüler. GridLayout'u kullanan bir yarışma örneği here'da gösterilmektedir.