내 게임의 레벨 편집기를 만들고 있습니다. 선택한 개체의 속성을 수정할 수있는 속성 패널이 있습니다. 나는 또한 버튼을 저장하여 레벨 xml을 작성합니다. 에디터 컴퍼넌트 가 또는 이를 입력 포커스를 잃은 필드 편집이 제출자바 스윙 : 포커스 문제
(*)는을 누르면. 이것은 큰 노력하고 있지만, 유일한 문제는 내가 작업이 순서 때이다 :
:- 편집 필드
- 눌러 무슨 일하는 것은 이것이다, 때문에 버튼을
을 저장
- 본인은
- 버튼 르 저장 눌러 필드를
- 을 편집 VEL이 필드는 당신이 볼 수 있듯이
- 편집이
제출 초점을 잃은
필드가 먼저 포커스를 잃고 저장 버튼의 동작 수신기를 수행하는 트릭, 해킹 또는 해결 방법이 있습니까?
미리 감사드립니다.
(* 객체 속성에 = 분야에 편집도 만들어 제출)
편집 : 필드의 내가 focusLost
와 FocusAdapter을 사용하고 있습니다 :
FocusAdapter focusAdapter = new FocusAdapter()
{
@Override
public void focusLost(FocusEvent e)
{
compProperties.setProperty(i, getColor());
record(); // For undo-redo mechanism
}
};
을 버튼의 경우 actionPerformed`가 포함 된 간단한 ActionListener
을 사용하십시오.
btnSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
// Save the level
}
});
'DocumentListener'를 사용하거나'AncesorListener'를 사용하거나'myTextField.setText와 함께'invokeLater'에'FocucHell'을 래핑하는 것으로 다른 옵션이 있기 때문에, (myTextField.getText);' – mKorbel
@mKorbel : 저장 프로세스를'invokeLater'에 래핑하려고 했는데도 여전히 잘못된 순서로되어 있습니다. –
참고 사항 [Q & A] (http://stackoverflow.com/questions/6803976/focusevent-doesnt-get-the-last-value-of-jformattedtextfield-how-i-get-it/6804749#6804749) . – trashgod