2016-03-31 30 views
0

üzerindeki enter tuşuna bastıktan sonra spinnerde odaklanma isteği nasıl yapılır? 2 Spinner s, windVelSpinner ve launchTubeSpinner var. Anahtar Preslenmiş İşlemler (Sahne Oluşturucu kullanıyorum): windSpinAction ve launchSpinAction bunlara aradım. İşte windSpinAction yöntemdir:Farklı bir spinner

@FXML 
void windSpinAction(KeyEvent ke) { 
    if (ke.getCode().equals(KeyCode.ENTER)) { 
     launchTubeSpinner.requestFocus(); 
    } // end if statement 

Ben programı çalıştırmak ve odak windVelSpinner hiçbir şey olmuyor açıkken girmek vurduğunda. Ancak kaymasına + kayma değerini girerseniz, odağı launchSpinAction olarak taşır. Bu neden böyle ve bu konuda nasıl alabilirim? Şimdiden teşekkürler!

cevap

1

Bu, kaydırma numaralı tuşa basmakla ya da işlemekle ilgisi yoktur. onKeyPressed olayları kullandığınızdan, olay, ilk Spinner ilk Spinner anahtarını hala basılı tutarken odağı tetikler, bu nedenle ikinci Spinner olayı alır ve ilk Spinner olay yeniden alır ve olay yeniden alır ikinci Spinner odağı ve daha fazlası ...

Sonuç, Spinner s sayfasından birinde az veya çok rastgele odaklanan odak noktasıdır.

Anahtar başına yalnızca bir kez tetiklenen onKeyReleased olayını kullanın. düzenlenebilir Spinner s olması ve kullanıcı girişi sonrasında odağı değiştirmek isterseniz


, editor ait onAction olay yerine Spinner anahtar olayını kullanın. (initialize yönteminde)

windVelSpinner.getEditor().setOnAction(e -> { 
    launchTubeSpinner.requestFocus(); 
}); 

+0

harika çalışıyor! teşekkür ederim! – Michael