2008-12-18 13 views
5

Düzenleyici bileşeni olarak JFormattedTextField ile özel bir TableCellEditor (DefaultCellEditor genişletme) içeren bir tablo var.Ayrı JBtton'a basıldığında DefaultCellEditor ile düzenleme nasıl durdurulur

Şimdi sorun yaşıyorum: Düzenlerken ayrı bir düğmeye bastığımda. Düğmeye basıldığında, editör, düğmenin neden olduğu işlemler için değişikliklerin yapılabilmesi için düzenlemeyi durdurmasını isterken "açık ve etkin" olarak kalır.

Farklı bir düğmeye basıldığında düzenleme işleminin nasıl durdurulacağı. Ben JFormattedTextField için setFocusLostBehavior (JFormattedTextField.COMMIT) denedik ama etkiye sahip değildi.

Umut birileri

cevap

12

Oldukça güzel çalışır

jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

+0

bkz bu şeylerle de daha sorunlar vardı? –

+0

Bilmiyorum. Korkarım oldukça belgesiz. :( – asalamon74

3

Teşekkür asalamon74, deneyebilirsiniz) = bazı iyi fikirler var.

Güneş Bug veritabanısı şey üzerinde tartışma var: Bug 4724980: JTable: Add API to control what happens to edits when table loses focus. (ayrıca diğer hata girdiler bulunursa). terminateEditOnFocusLost sınıf JTable $ CellEditorRemover

Java kaynaklarına görülebilir "iptal tamamlama-ya-" davranışı açar Ve evet, o API'ler vb de belgelenmiş olmadığını biraz garip .. .

+0

Tartışmaların gönderilme tarihi 01-AUG-2002'dir. Bu yüzden uzun bir sorun ve hala belgelenmiş değil. – asalamon74