Oyunum için bir seviye editörü yapıyorum. Seçilen nesneyi özelliklerini değiştirebileceğim bir özellik panelim var. Ayrıca xml düzeyini yazmak için Kaydet Kaydet düğmesi var. editör bileşeni veya girin odağı kaybetti Bir alan düzenleme gönderildiktenJava Swing: Focus issue
(*) basılır. Bu harika çalışıyor, ancak tek sorun eylemlerin bu diziyi varken şudur:
:- düzenleme bir alan
- basın ne olur bu Çünkü, düğmeye
tasarruf
- ben
- düğmesi le kaydetmek basın sahadan
- düzenlemek vel alan Gördüğünüz gibi
- düzenlemek
gönderilirse odağı kaybetti
Alanın önce odağı kaybetmesini ve ardından kaydetme düğmesinin eylem dinleyicisini gerçekleştirmesini sağlamak için bir hile, kesmek veya geçici çözüm var mı?
Şimdiden teşekkürler.
(* nesne özelliğinde = alana düzenleme de yapılır gönderme)
EDIT: saha I focusLost
ile FocusAdapter kullanıyorum:
FocusAdapter focusAdapter = new FocusAdapter()
{
@Override
public void focusLost(FocusEvent e)
{
compProperties.setProperty(i, getColor());
record(); // For undo-redo mechanism
}
};
Ve düğme için bir eylem 0 ile ActionListener
Performed`.
btnSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
// Save the level
}
});
Kodun nasıl çalıştığını bilmiyoruz, lütfen buraya bir kod gönderiniz, çünkü burada “DocumentListener” veya “AncesorListener” kullanılarak başka bir seçenek var, ya da sadece “FocucHell” inizi “invokeLater” ile myTextField.setText ile paketleyin. (myTextField.getText); ' – mKorbel
@mKorbel: Kaydetme işlemini bir' invokeLater' içine sarmayı denedim, ancak yine de yanlış sırada. –
Ayrıca bkz. [Q & A] (http://stackoverflow.com/questions/6803976/focusevent-doesnt-get-the-last-value-of-jformattedtextfield-how-i-can-get-it/6804749#6804749) . – trashgod