JavaFX 2.1 kullanıyorum ve bu GUI denetleyicisinde FX1 kullanarak GUI oluşturdum, myTextField.requestFocus();
ekledim.RequestFocus in TextField çalışmıyor
Ancak her zaman odağı diğer kontrolden geçiriyorum.
JavaFX 2.1 kullanıyorum ve bu GUI denetleyicisinde FX1 kullanarak GUI oluşturdum, myTextField.requestFocus();
ekledim.RequestFocus in TextField çalışmıyor
Ancak her zaman odağı diğer kontrolden geçiriyorum.
initialize()
denetimleri henüz odağı işlemek için hazır değil.
sonraki hile deneyebilirsiniz:
private void repeatFocus(Node node) {
Platform.runLater(() -> {
if (!node.isFocused()) {
node.requestFocus();
repeatFocus(node);
}
});
}
: zor, karmaşık uygulamalar için
@Override
public void initialize(URL url, ResourceBundle rb) {
Platform.runLater(new Runnable() {
@Override
public void run() {
tf.requestFocus();
}
});
}
(Pavel_K yorumlarda var gibi) Bu rutin birkaç kez ve çağrı yöntemi hattını tekrarlamak isteyebilirsiniz biri gelecek
Bu, belgelenmemiş bir yaklaşımdır ve gelecekteki Java sürümlerinde bir şey değiştiğinde veya bozulduğunda sonsuz döngüden kaçınmak için tekrarlama sınırı eklemek akıllıca olabilir. Tüm uygulamadan daha iyi odak kaybetmek. :)
Eğer istersenizFocus(); Sahneyi başlattıktan sonra, işe yarayacak! Bunun gibi
:
Stage stage = new Stage();
GridPane grid = new GridPane();
//... add buttons&stuff to pane
Scene scene = new Scene(grid, 800, 600);
TEXTFIELD.requestFocus();
stage.setScene(scene);
stage.show();
umarım bu yardımcı olur.
@Sergey Grinev ile tam olarak aynı cevap. Java sürümünüzün güncel olduğundan emin olun (JDK 1.8 veya üstü).
bu benim için çalışıyorPlatform.runLater(()->myTextField.requestFocus());
, teşekkürler! – Adil
Biraz ilgili bir sorun yaşadım, 'TextArea', Sahne Alanı görünür ve etkin olsa bile programlı olarak odaklamayı reddetti ** ve ** geçerli çalışan iş parçacığı JavaFX Uygulama iş parçacığıydı. Ama eğer örneği takip ettiysem ve yeni bir 'Runnable'ı sıraya koyarsam işe yaradı. Gerçekten garip, bunun için hiçbir sözüm yok. –
Bu artık JavaFX 8 ile çalışmıyor gibi görünüyor. 'Tf == null',' initialize' çalıştırıldığı sırada hala geçerlidir. – skiwi